19 std::cerr <<
"ArrayOfStructsTest\n";
21 int n = arg1.
size(), sum = 0;
22 for (
int i = 0; i <
n; ++i ) sum +=
int( arg1[i][
"curly"] );
26} arrayOfStructsTest( &
s );
40 std::cerr <<
"CountTheEntities\n";
41 std::string&
arg = params[0];
42 int ctLeftAngleBrackets = 0;
43 int ctRightAngleBrackets = 0;
45 int ctApostrophes = 0;
48 int n = int(
arg.length() );
49 for (
int i = 0; i <
n; ++i )
switch (
arg[i] )
51 case '<': ++ctLeftAngleBrackets;
break;
52 case '>': ++ctRightAngleBrackets;
break;
53 case '&': ++ctAmpersands;
break;
54 case '\'': ++ctApostrophes;
break;
55 case '\"': ++ctQuotes;
break;
58 result[
"ctLeftAngleBrackets"] = ctLeftAngleBrackets;
59 result[
"ctRightAngleBrackets"] = ctRightAngleBrackets;
60 result[
"ctAmpersands"] = ctAmpersands;
61 result[
"ctApostrophes"] = ctApostrophes;
62 result[
"ctQuotes"] = ctQuotes;
64} countTheEntities( &
s );
75 std::cerr <<
"EasyStructTest\n";
77 int sum = int( arg1[
"moe"] ) + int( arg1[
"larry"] ) + int( arg1[
"curly"] );
80} easyStructTest( &
s );
89 std::cerr <<
"EchoStructTest\n";
92} echoStructTest( &
s );
101 std::cerr <<
"ManyTypesTest\n";
104} manyTypesTest( &
s );
116 std::cerr <<
"ModerateSizeArrayCheck\n";
117 std::string
s = params[0][0];
118 s += params[0][params[0].
size() - 1];
121} moderateSizeArrayCheck( &
s );
136 std::cerr <<
"NestedStructTest\n";
137 XmlRpcValue& dayStruct = params[0][
"2000"][
"04"][
"01"];
138 int sum = int( dayStruct[
"moe"] ) + int( dayStruct[
"larry"] ) + int( dayStruct[
"curly"] );
141} nestedStructTest( &
s );
152 std::cerr <<
"SimpleStructReturnTest\n";
154 result[
"times10"] =
n * 10;
155 result[
"times100"] =
n * 100;
156 result[
"times1000"] =
n * 1000;
158} simpleStructReturnTest( &
s );
160int main(
int argc,
char* argv[] ) {
163 std::cerr <<
"Usage: Validator port\n";
166 int port = atoi( argv[1] );
171 s.bindAndListen( port );
double arg(const EvtComplex &c)
ArrayOfStructsTest(XmlRpcServer *s)
void execute(XmlRpcValue ¶ms, XmlRpcValue &result)
Execute the method. Subclasses must provide a definition for this method.
void execute(XmlRpcValue ¶ms, XmlRpcValue &result)
Execute the method. Subclasses must provide a definition for this method.
CountTheEntities(XmlRpcServer *s)
EasyStructTest(XmlRpcServer *s)
void execute(XmlRpcValue ¶ms, XmlRpcValue &result)
Execute the method. Subclasses must provide a definition for this method.
EchoStructTest(XmlRpcServer *s)
void execute(XmlRpcValue ¶ms, XmlRpcValue &result)
Execute the method. Subclasses must provide a definition for this method.
ManyTypesTest(XmlRpcServer *s)
void execute(XmlRpcValue ¶ms, XmlRpcValue &result)
Execute the method. Subclasses must provide a definition for this method.
ModerateSizeArrayCheck(XmlRpcServer *s)
void execute(XmlRpcValue ¶ms, XmlRpcValue &result)
Execute the method. Subclasses must provide a definition for this method.
void execute(XmlRpcValue ¶ms, XmlRpcValue &result)
Execute the method. Subclasses must provide a definition for this method.
NestedStructTest(XmlRpcServer *s)
void execute(XmlRpcValue ¶ms, XmlRpcValue &result)
Execute the method. Subclasses must provide a definition for this method.
SimpleStructReturnTest(XmlRpcServer *s)
XmlRpcServerMethod(std::string const &name, XmlRpcServer *server=0)
Constructor.
A class to handle XML RPC requests.
RPC method arguments and results are represented by Values.
int size() const
Return the size for string, base64, array, and struct values.
void setVerbosity(int level)
Sets log message verbosity. This is short for XmlRpcLogHandler::setVerbosity(level).