1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
|
#ifndef DISABLE_NETWORK
#ifndef __xmlrpc_h_
#define __xmlrpc_h_
#include <asm/types.h>
#include <map>
#include <vector>
#include <xmltree.h>
#include <lib/base/estring.h>
#include <lib/base/eptrlist.h>
#include <lib/network/httpd.h>
#define INSERT(KEY,VALUE) insert(std::pair<eString, eXMLRPCVariant*>(KEY,VALUE))
class eXMLRPCVariant
{
std::map<eString,eXMLRPCVariant*> *_struct;
std::vector<eXMLRPCVariant> *_array;
__s32 *_i4;
bool *_boolean;
eString *_string;
double *_double;
// QDateTime *_datetime;
// QByteArray *_base64;
void zero();
public:
eXMLRPCVariant(std::map<eString,eXMLRPCVariant*> *_struct);
eXMLRPCVariant(std::vector<eXMLRPCVariant> *_array);
eXMLRPCVariant(__s32 *_i4);
eXMLRPCVariant(bool *_boolean);
eXMLRPCVariant(eString *_string);
eXMLRPCVariant(double *_double);
// eXMLRPCVariant(QDateTime *_datetime);
// eXMLRPCVariant(QByteArray *_base64);
eXMLRPCVariant(const eXMLRPCVariant &c);
~eXMLRPCVariant();
std::map<eString,eXMLRPCVariant*> *getStruct();
std::vector<eXMLRPCVariant> *getArray();
__s32 *getI4();
bool *getBoolean();
eString *getString();
double *getDouble();
// QDateTime *getDatetime();
// QByteArray *getBase64();
void toXML(eString &);
};
class eXMLRPCResponse: public eHTTPDataSource
{
XMLTreeParser parser;
eString result;
int size;
int wptr;
int doCall();
public:
eXMLRPCResponse(eHTTPConnection *c);
~eXMLRPCResponse();
int doWrite(int);
void haveData(void *data, int len);
};
void xmlrpc_initialize(eHTTPD *httpd);
void xmlrpc_addMethod(eString methodName, int (*)(std::vector<eXMLRPCVariant>&, ePtrList<eXMLRPCVariant>&));
void xmlrpc_fault(ePtrList<eXMLRPCVariant> &res, int faultCode, eString faultString);
int xmlrpc_checkArgs(eString args, std::vector<eXMLRPCVariant>&, ePtrList<eXMLRPCVariant> &res);
class eHTTPXMLRPCResolver: public eHTTPPathResolver
{
public:
eHTTPXMLRPCResolver();
eHTTPDataSource *getDataSource(eString request, eString path, eHTTPConnection *conn);
};
#endif
#endif //DISABLE_NETWORK
|