3 #ifndef _XMLRPCCLIENT_H_
4 #define _XMLRPCCLIENT_H_
9 # pragma warning(disable:4786) // identifier was truncated in debug info
17 #include "xmlrpcpp/XmlRpcDispatch.h"
18 #include "xmlrpcpp/XmlRpcSource.h"
19 #include "xmlrpcpp/XmlRpcDecl.h"
30 static const char REQUEST_BEGIN[];
31 static const char REQUEST_END_METHODNAME[];
32 static const char PARAMS_TAG[];
33 static const char PARAMS_ETAG[];
34 static const char PARAM_TAG[];
35 static const char PARAM_ETAG[];
36 static const char REQUEST_END[];
38 static const char METHODRESPONSE_TAG[];
39 static const char FAULT_TAG[];
45 XmlRpcClient(
const char* host,
int port,
const char* uri=0);
48 virtual ~XmlRpcClient();
60 bool execute(
const char* method, XmlRpcValue
const& params, XmlRpcValue& result);
62 bool executeNonBlock(
const char* method, XmlRpcValue
const& params);
63 bool executeCheckDone(XmlRpcValue& result);
66 bool isFault()
const {
return _isFault; }
76 virtual unsigned handleEvent(
unsigned eventType);
80 virtual bool doConnect();
81 virtual bool setupConnection();
83 virtual bool generateRequest(
const char* method, XmlRpcValue
const& params);
84 virtual std::string generateHeader(std::string
const& body);
85 virtual bool writeRequest();
86 virtual bool readHeader();
87 virtual bool readResponse();
88 virtual bool parseResponse(XmlRpcValue& result);
91 enum ClientConnectionState { NO_CONNECTION, CONNECTING, WRITE_REQUEST, READ_HEADER, READ_RESPONSE, IDLE };
92 ClientConnectionState _connectionState;
99 const std::string &
getHost() {
return _host; }
100 const std::string &getUri() {
return _uri; }
101 int getPort()
const {
return _port; }
104 std::string _request;
106 std::string _response;
128 XmlRpcDispatch _disp;
134 #endif // _XMLRPCCLIENT_H_