PTLib Version 2.12.9

- Main Page
- Related Pages
- Namespaces
- Classes
- Files

- File List
- File Members

All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
Classes | Macros
pxmlrpc.h File Reference
`#include <ptclib/pxml.h>`
`#include <ptclib/url.h>`
Include dependency graph for pxmlrpc.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

## Classes
class | PXMLRPC
class | PXMLRPCBlock
class | PXMLRPCVariableBase
class | PXMLRPCArrayBase
class | PXMLRPCArrayObjectsBase
class | PXMLRPCStructBase

## Macros
#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) PBoolean 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)

## Macro Definition Documentation

#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:
}; \
PBoolean name(name##_out & reply) \
{ return MakeRequest(#name, name##_in(), reply); }

#define PXMLRPC_FUNC_NOARG_NOREPLY | ( |  | name | ) | PBoolean name() { return MakeRequest(#name); }

#define PXMLRPC_FUNC_NORM_ARGS | ( |  | name | ) |

Value:
}; \
PBoolean 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; \
}; \
PBoolean 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;, ;)