openATV enigma2
openATV is an open source SetTopBox Graphical user interface.
xmlrpc.h
Go to the documentation of this file.
1 #ifndef DISABLE_NETWORK
2 
3 #ifndef __xmlrpc_h_
4 #define __xmlrpc_h_
5 
6 #include <asm/types.h>
7 #include <map>
8 #include <vector>
9 #include <xmltree.h>
10 
11 #include <string>
12 #include <lib/base/eptrlist.h>
13 #include <lib/network/httpd.h>
14 
15 #define INSERT(KEY,VALUE) insert(std::pair<std::string, eXMLRPCVariant*>(KEY,VALUE))
16 
18 {
19  std::map<std::string,eXMLRPCVariant*> *_struct;
20  std::vector<eXMLRPCVariant> *_array;
21  __s32 *_i4;
22  bool *_boolean;
23  std::string *_string;
24  double *_double;
25 // QDateTime *_datetime;
26 // QByteArray *_base64;
27  void zero();
28 public:
29  eXMLRPCVariant(std::map<std::string,eXMLRPCVariant*> *_struct);
30  eXMLRPCVariant(std::vector<eXMLRPCVariant> *_array);
31  eXMLRPCVariant(__s32 *_i4);
32  eXMLRPCVariant(bool *_boolean);
33  eXMLRPCVariant(std::string *_string);
34  eXMLRPCVariant(double *_double);
35 // eXMLRPCVariant(QDateTime *_datetime);
36 // eXMLRPCVariant(QByteArray *_base64);
39 
40  std::map<std::string,eXMLRPCVariant*> *getStruct();
41  std::vector<eXMLRPCVariant> *getArray();
42  __s32 *getI4();
43  bool *getBoolean();
44  std::string *getString();
45  double *getDouble();
46 // QDateTime *getDatetime();
47 // QByteArray *getBase64();
48 
49  void toXML(std::string &);
50 };
51 
52 class eXMLRPCResponse: public eHTTPDataSource
53 {
54  XMLTreeParser parser;
55  std::string result;
56  int size;
57  int wptr;
58  int doCall();
59 public:
60  eXMLRPCResponse(eHTTPConnection *c);
62 
63  int doWrite(int);
64  void haveData(void *data, int len);
65 };
66 
67 void xmlrpc_initialize(eHTTPD *httpd);
68 void xmlrpc_addMethod(const std::string& methodName, int (*)(std::vector<eXMLRPCVariant>&, ePtrList<eXMLRPCVariant>&));
69 void xmlrpc_fault(ePtrList<eXMLRPCVariant> &res, int faultCode, std::string faultString);
70 int xmlrpc_checkArgs(const std::string& args, std::vector<eXMLRPCVariant>&, ePtrList<eXMLRPCVariant> &res);
71 
72 class eHTTPXMLRPCResolver: public iHTTPPathResolver
73 {
74  DECLARE_REF(eHTTPXMLRPCResolver);
75 public:
77  eHTTPDataSource *getDataSource(const std::string& request, const std::string& path, eHTTPConnection *conn);
78 };
79 
80 #endif
81 
82 #endif //DISABLE_NETWORK
Definition: xmlrpc.h:73
eHTTPXMLRPCResolver()
Definition: xmlrpc.cpp:510
eHTTPDataSource * getDataSource(const std::string &request, const std::string &path, eHTTPConnection *conn)
Definition: xmlrpc.cpp:514
Definition: eptrlist.h:12
Definition: xmlrpc.h:53
int doWrite(int)
Definition: xmlrpc.cpp:396
eXMLRPCResponse(eHTTPConnection *c)
Definition: xmlrpc.cpp:281
void haveData(void *data, int len)
Definition: xmlrpc.cpp:408
~eXMLRPCResponse()
Definition: xmlrpc.cpp:288
Definition: xmlrpc.h:18
void toXML(std::string &)
Definition: xmlrpc.cpp:156
std::map< std::string, eXMLRPCVariant * > * getStruct()
Definition: xmlrpc.cpp:116
bool * getBoolean()
Definition: xmlrpc.cpp:131
eXMLRPCVariant(std::map< std::string, eXMLRPCVariant * > *_struct)
Definition: xmlrpc.cpp:21
std::vector< eXMLRPCVariant > * getArray()
Definition: xmlrpc.cpp:121
__s32 * getI4()
Definition: xmlrpc.cpp:126
std::string * getString()
Definition: xmlrpc.cpp:136
double * getDouble()
Definition: xmlrpc.cpp:141
~eXMLRPCVariant()
Definition: xmlrpc.cpp:91
unsigned char data[256]
Definition: hdmi_cec.h:2
string path
Definition: FindPicon.py:11
void xmlrpc_fault(ePtrList< eXMLRPCVariant > &res, int faultCode, std::string faultString)
Definition: xmlrpc.cpp:451
void xmlrpc_addMethod(const std::string &methodName, int(*)(std::vector< eXMLRPCVariant > &, ePtrList< eXMLRPCVariant > &))
Definition: xmlrpc.cpp:446
int xmlrpc_checkArgs(const std::string &args, std::vector< eXMLRPCVariant > &, ePtrList< eXMLRPCVariant > &res)
Definition: xmlrpc.cpp:459
void xmlrpc_initialize(eHTTPD *httpd)
Definition: xmlrpc.cpp:441