#include <ptclib/pxml.h>
#include <ptclib/url.h>
Go to the source code of this file.
Classes | |
class | PXMLRPC |
class | PXMLRPCBlock |
class | PXMLRPCVariableBase |
class | PXMLRPCArrayBase |
class | PXMLRPCArrayObjectsBase |
class | PXMLRPCStructBase |
Defines | |
#define | PXMLRPC_STRUCT_BEGIN(name) |
#define | PXMLRPC_VARIABLE_CLASS(base, type, variable, xmltype, init, extras) |
#define | PXMLRPC_VARIABLE_CUSTOM(base, type, variable, xmltype, init, extras) |
#define | PXMLRPC_ARRAY_CUSTOM(base, arraytype, basetype, variable, xmltype, par, extras) |
#define | PXMLRPC_STRUCT_END() }; |
#define | PXMLRPC_VARIABLE(base, type, variable, xmltype) PXMLRPC_VARIABLE_CUSTOM(base, type, variable, xmltype, ;, ;) |
#define | PXMLRPC_VARIABLE_INIT(base, type, variable, xmltype, init) PXMLRPC_VARIABLE_CUSTOM(base, type, variable, xmltype, instance=init;, ;) |
#define | PXMLRPC_STRING(base, type, variable) PXMLRPC_VARIABLE(base, type, variable, "string") |
#define | PXMLRPC_STRING_INIT(base, type, variable, init) PXMLRPC_VARIABLE_INIT(base, type, variable, "string", init) |
#define | PXMLRPC_INTEGER(base, type, variable) PXMLRPC_VARIABLE(base, type, variable, "int") |
#define | PXMLRPC_INTEGER_INIT(base, type, variable, init) PXMLRPC_VARIABLE_INIT(base, type, variable, "int", init) |
#define | PXMLRPC_BOOLEAN(base, type, variable) PXMLRPC_VARIABLE(base, type, variable, "boolean") |
#define | PXMLRPC_BOOLEAN_INIT(base, type, variable, init) PXMLRPC_VARIABLE_INIT(base, type, variable, "boolean", init) |
#define | PXMLRPC_DOUBLE(base, type, variable) PXMLRPC_VARIABLE(base, type, variable, "double") |
#define | PXMLRPC_DOUBLE_INIT(base, type, variable, init) PXMLRPC_VARIABLE_INIT(base, type, variable, "double", init) |
#define | PXMLRPC_DATETIME(base, type, variable) |
#define | PXMLRPC_BINARY(base, type, variable) |
#define | PXMLRPC_STRUCT(base, type, variable) |
#define | PXMLRPC_ARRAY(base, arraytype, basetype, variable, xmltype) |
#define | PXMLRPC_ARRAY_STRING(base, arraytype, basetype, variable) PXMLRPC_ARRAY(base, arraytype, basetype, variable, "string") |
#define | PXMLRPC_ARRAY_INTEGER(base, type, variable) |
#define | PXMLRPC_ARRAY_DOUBLE(base, type, variable) |
#define | PXMLRPC_ARRAY_STRUCT(base, type, variable) |
#define | PXMLRPC_FUNC_NOARG_NOREPLY(name) BOOL name() { return MakeRequest(#name); } |
#define | PXMLRPC_FUNC_SINGLE_ARG(name, vartype, argtype) |
#define | PXMLRPC_FUNC_MULTI_ARGS(name) PXMLRPC_STRUCT_BEGIN(name##_in) |
#define | PXMLRPC_FUNC_MULTI_REPLY(name) }; PXMLRPC_STRUCT_BEGIN(name##_out) |
#define | PXMLRPC_FUNC_NO_ARGS(name) |
#define | PXMLRPC_FUNC_STRUCT_ARG(name) |
#define | PXMLRPC_FUNC_NORM_ARGS(name) |
#define PXMLRPC_ARRAY | ( | base, | |||
arraytype, | |||||
basetype, | |||||
variable, | |||||
xmltype | ) |
Value:
PXMLRPC_ARRAY_CUSTOM(base, arraytype, basetype, variable, xmltype, PXMLRPCArrayObjectsBase, \ PObject * CreateObject() const { return new basetype; })
#define PXMLRPC_ARRAY_CUSTOM | ( | base, | |||
arraytype, | |||||
basetype, | |||||
variable, | |||||
xmltype, | |||||
par, | |||||
extras | ) |
Value:
public: arraytype variable; \ private: struct PXMLRPCVar_##variable : public par { \ PXMLRPCVar_##variable() \ : par(((base &)base::GetInitialiser()).variable, #variable, xmltype), \ instance((arraytype &)array) \ { } \ extras \ arraytype & instance; \ } pxmlrpcvar_##variable
#define PXMLRPC_ARRAY_DOUBLE | ( | base, | |||
type, | |||||
variable | ) |
Value:
PXMLRPC_ARRAY_CUSTOM(base, PScalarArray<type>, type, variable, "double", PXMLRPCArrayBase, \ PString ToString(PINDEX i) const { return psprintf("%f", instance[i]); } \ void FromString(PINDEX i, const PString & str) { instance[i] = (type)str.AsReal(); })
#define PXMLRPC_ARRAY_INTEGER | ( | base, | |||
type, | |||||
variable | ) |
Value:
PXMLRPC_ARRAY_CUSTOM(base, PScalarArray<type>, type, variable, "int", PXMLRPCArrayBase, \ PString ToString(PINDEX i) const { return PString(instance[i]); } \ void FromString(PINDEX i, const PString & str) { instance[i] = (type)str.AsInteger(); })
#define PXMLRPC_ARRAY_STRING | ( | base, | |||
arraytype, | |||||
basetype, | |||||
variable | ) | PXMLRPC_ARRAY(base, arraytype, basetype, variable, "string") |
#define PXMLRPC_ARRAY_STRUCT | ( | base, | |||
type, | |||||
variable | ) |
Value:
PXMLRPC_ARRAY_CUSTOM(base, PArray<type>, type, variable, "struct", PXMLRPCArrayObjectsBase, \ PXMLRPCStructBase * GetStruct(PINDEX i) const { return &instance[i]; } \ PObject * CreateObject() const { return new type; })
#define PXMLRPC_BINARY | ( | base, | |||
type, | |||||
variable | ) |
Value:
PXMLRPC_VARIABLE_CUSTOM(base, type, variable, "base64", ;, \ PString ToString(PINDEX) const { return ToBase64(instance); } \ void FromString(PINDEX, const PString & str) { FromBase64(str, instance); } )
#define PXMLRPC_BOOLEAN | ( | base, | |||
type, | |||||
variable | ) | PXMLRPC_VARIABLE(base, type, variable, "boolean") |
#define PXMLRPC_BOOLEAN_INIT | ( | base, | |||
type, | |||||
variable, | |||||
init | ) | PXMLRPC_VARIABLE_INIT(base, type, variable, "boolean", init) |
#define PXMLRPC_DATETIME | ( | base, | |||
type, | |||||
variable | ) |
Value:
PXMLRPC_VARIABLE_CUSTOM(base, type, variable, "dateTime.iso8601", ;, \ PString ToString(PINDEX) const { return instance.AsString(PTime::ShortISO8601); } )
#define PXMLRPC_DOUBLE | ( | base, | |||
type, | |||||
variable | ) | PXMLRPC_VARIABLE(base, type, variable, "double") |
#define PXMLRPC_DOUBLE_INIT | ( | base, | |||
type, | |||||
variable, | |||||
init | ) | PXMLRPC_VARIABLE_INIT(base, type, variable, "double", init) |
#define PXMLRPC_FUNC_MULTI_ARGS | ( | name | ) | PXMLRPC_STRUCT_BEGIN(name##_in) |
#define PXMLRPC_FUNC_MULTI_REPLY | ( | name | ) | }; PXMLRPC_STRUCT_BEGIN(name##_out) |
#define PXMLRPC_FUNC_NO_ARGS | ( | name | ) |
Value:
}; \
BOOL name(name##_out & reply) \
{ return MakeRequest(#name, name##_in(), reply); }
#define PXMLRPC_FUNC_NOARG_NOREPLY | ( | name | ) | BOOL name() { return MakeRequest(#name); } |
#define PXMLRPC_FUNC_NORM_ARGS | ( | name | ) |
Value:
}; \ BOOL name(const name##_in & args, name##_out & reply) \ { return MakeRequest(#name, args, reply); }
#define PXMLRPC_FUNC_SINGLE_ARG | ( | name, | |||
vartype, | |||||
argtype | ) |
Value:
class name##_in : public PXMLRPCStructBase { \ public: name##_in(const argtype & var) : variable(var) { EndConstructor(); } \ vartype(name##_in, argtype, variable);
#define PXMLRPC_FUNC_STRUCT_ARG | ( | name | ) |
Value:
}; \ class name##_in_carrier : public PXMLRPCStructBase { \ public: name##_in_carrier(const name##_in & var) : variable(var) { EndConstructor(); } \ private: struct var_class : public PXMLRPCVariableBase { \ var_class(const name##_in & var) \ : PXMLRPCVariableBase("variable", "struct"), instance(var) { } \ virtual void PrintOn (ostream & s) const { s << instance; } \ virtual PXMLRPCStructBase * GetStruct(PINDEX) const { return (PXMLRPCStructBase *)&instance; } \ virtual void Copy(const PXMLRPCVariableBase &) { } \ const name##_in & instance; \ } variable; \ }; \ BOOL name(const name##_in & args, name##_out & reply) \ { return MakeRequest(#name, name##_in_carrier(args), reply); }
#define PXMLRPC_INTEGER | ( | base, | |||
type, | |||||
variable | ) | PXMLRPC_VARIABLE(base, type, variable, "int") |
#define PXMLRPC_INTEGER_INIT | ( | base, | |||
type, | |||||
variable, | |||||
init | ) | PXMLRPC_VARIABLE_INIT(base, type, variable, "int", init) |
#define PXMLRPC_STRING | ( | base, | |||
type, | |||||
variable | ) | PXMLRPC_VARIABLE(base, type, variable, "string") |
#define PXMLRPC_STRING_INIT | ( | base, | |||
type, | |||||
variable, | |||||
init | ) | PXMLRPC_VARIABLE_INIT(base, type, variable, "string", init) |
#define PXMLRPC_STRUCT | ( | base, | |||
type, | |||||
variable | ) |
Value:
PXMLRPC_VARIABLE_CUSTOM(base, type, variable, "struct", ;, \ PXMLRPCStructBase * GetStruct(PINDEX) const { return &instance; } )
#define PXMLRPC_STRUCT_BEGIN | ( | name | ) |
Value:
class name : public PXMLRPCStructBase { \ public: name() { EndConstructor(); } \ public: name(const name & other) { EndConstructor(); operator=(other); } \ public: name & operator=(const name & other) { PXMLRPCStructBase::operator=(other); return *this; }
#define PXMLRPC_STRUCT_END | ( | ) | }; |
#define PXMLRPC_VARIABLE | ( | base, | |||
type, | |||||
variable, | |||||
xmltype | ) | PXMLRPC_VARIABLE_CUSTOM(base, type, variable, xmltype, ;, ;) |
#define PXMLRPC_VARIABLE_CLASS | ( | base, | |||
type, | |||||
variable, | |||||
xmltype, | |||||
init, | |||||
extras | ) |
Value:
private: struct PXMLRPCVar_##variable : public PXMLRPCVariableBase { \ PXMLRPCVar_##variable() \ : PXMLRPCVariableBase(#variable, xmltype), \ instance(((base &)base::GetInitialiser()).variable) \ { init } \ virtual void PrintOn (ostream & s) const { s << instance; } \ virtual void ReadFrom(istream & s) { s >> instance; } \ virtual void Copy(const PXMLRPCVariableBase & other) \ { instance = ((PXMLRPCVar_##variable &)other).instance; } \ extras \ type & instance; \ } pxmlrpcvar_##variable
#define PXMLRPC_VARIABLE_CUSTOM | ( | base, | |||
type, | |||||
variable, | |||||
xmltype, | |||||
init, | |||||
extras | ) |
Value:
public: type variable; \ PXMLRPC_VARIABLE_CLASS(base, type, variable, xmltype, init, extras)
#define PXMLRPC_VARIABLE_INIT | ( | base, | |||
type, | |||||
variable, | |||||
xmltype, | |||||
init | ) | PXMLRPC_VARIABLE_CUSTOM(base, type, variable, xmltype, instance=init;, ;) |