A class to send XML RPC requests to a server and return the results. More...
#include <XmlRpcClient.h>
Public Member Functions | |
virtual void | close () |
Close the connection. | |
bool | execute (const char *method, XmlRpcValue const ¶ms, XmlRpcValue &result) |
bool | executeCheckDone (XmlRpcValue &result) |
bool | executeNonBlock (const char *method, XmlRpcValue const ¶ms) |
const std::string & | getHost () |
int | getPort () const |
const std::string & | getUri () |
virtual unsigned | handleEvent (unsigned eventType) |
bool | isFault () const |
Returns true if the result of the last execute() was a fault response. | |
XmlRpcClient (const char *host, int port, const char *uri=0) | |
virtual | ~XmlRpcClient () |
Destructor. | |
Public Attributes | |
int | _bytesWritten |
int | _contentLength |
XmlRpcDispatch | _disp |
bool | _eof |
bool | _executing |
std::string | _header |
bool | _isFault |
std::string | _request |
std::string | _response |
int | _sendAttempts |
Static Public Attributes | |
static const char | FAULT_TAG [] = "<fault>" |
static const char | METHODRESPONSE_TAG [] = "<methodResponse>" |
static const char | PARAM_ETAG [] = "</param>" |
static const char | PARAM_TAG [] = "<param>" |
static const char | PARAMS_ETAG [] = "</params>" |
static const char | PARAMS_TAG [] = "<params>" |
static const char | REQUEST_BEGIN [] = "<methodCall><methodName>" |
static const char | REQUEST_END [] = "</methodCall>\r\n" |
static const char | REQUEST_END_METHODNAME [] = "</methodName>\r\n" |
Protected Types | |
enum | ClientConnectionState { NO_CONNECTION, CONNECTING, WRITE_REQUEST, READ_HEADER, READ_RESPONSE, IDLE } |
Protected Member Functions | |
virtual bool | doConnect () |
virtual std::string | generateHeader (std::string const &body) |
virtual bool | generateRequest (const char *method, XmlRpcValue const ¶ms) |
virtual bool | parseResponse (XmlRpcValue &result) |
virtual bool | readHeader () |
virtual bool | readResponse () |
virtual bool | setupConnection () |
virtual bool | writeRequest () |
Protected Attributes | |
ClientConnectionState | _connectionState |
std::string | _host |
int | _port |
std::string | _uri |
A class to send XML RPC requests to a server and return the results.
Definition at line 26 of file XmlRpcClient.h.
enum XmlRpc::XmlRpcClient::ClientConnectionState [protected] |
Definition at line 90 of file XmlRpcClient.h.
XmlRpcClient::XmlRpcClient | ( | const char * | host, |
int | port, | ||
const char * | uri = 0 |
||
) |
Construct a client to connect to the server at the specified host:port address
host | The name of the remote machine hosting the server |
port | The port on the remote machine where the server is listening |
uri | An optional string to be sent as the URI in the HTTP GET header |
Definition at line 32 of file XmlRpcClient.cpp.
XmlRpcClient::~XmlRpcClient | ( | ) | [virtual] |
Destructor.
Definition at line 51 of file XmlRpcClient.cpp.
void XmlRpcClient::close | ( | ) | [virtual] |
Close the connection.
Reimplemented from XmlRpc::XmlRpcSource.
Definition at line 58 of file XmlRpcClient.cpp.
bool XmlRpcClient::doConnect | ( | ) | [protected, virtual] |
Definition at line 218 of file XmlRpcClient.cpp.
bool XmlRpcClient::execute | ( | const char * | method, |
XmlRpcValue const & | params, | ||
XmlRpcValue & | result | ||
) |
Execute the named procedure on the remote server.
method | The name of the remote procedure to execute |
params | An array of the arguments for the method |
result | The result value to be returned to the client |
Currently this is a synchronous (blocking) implementation (execute does not return until it receives a response or an error). Use isFault() to determine whether the result is a fault response.
Definition at line 80 of file XmlRpcClient.cpp.
bool XmlRpcClient::executeCheckDone | ( | XmlRpcValue & | result | ) |
Definition at line 145 of file XmlRpcClient.cpp.
bool XmlRpcClient::executeNonBlock | ( | const char * | method, |
XmlRpcValue const & | params | ||
) |
Definition at line 119 of file XmlRpcClient.cpp.
std::string XmlRpcClient::generateHeader | ( | std::string const & | body | ) | [protected, virtual] |
Definition at line 288 of file XmlRpcClient.cpp.
bool XmlRpcClient::generateRequest | ( | const char * | method, |
XmlRpcValue const & | params | ||
) | [protected, virtual] |
Definition at line 250 of file XmlRpcClient.cpp.
const std::string& XmlRpc::XmlRpcClient::getHost | ( | ) | [inline] |
Definition at line 98 of file XmlRpcClient.h.
int XmlRpc::XmlRpcClient::getPort | ( | ) | const [inline] |
Definition at line 100 of file XmlRpcClient.h.
const std::string& XmlRpc::XmlRpcClient::getUri | ( | ) | [inline] |
Definition at line 99 of file XmlRpcClient.h.
unsigned XmlRpcClient::handleEvent | ( | unsigned | eventType | ) | [virtual] |
Handle server responses. Called by the event dispatcher during execute.
eventType | The type of event that occurred. |
Implements XmlRpc::XmlRpcSource.
Definition at line 163 of file XmlRpcClient.cpp.
bool XmlRpc::XmlRpcClient::isFault | ( | ) | const [inline] |
Returns true if the result of the last execute() was a fault response.
Definition at line 65 of file XmlRpcClient.h.
bool XmlRpcClient::parseResponse | ( | XmlRpcValue & | result | ) | [protected, virtual] |
Definition at line 444 of file XmlRpcClient.cpp.
bool XmlRpcClient::readHeader | ( | ) | [protected, virtual] |
Definition at line 342 of file XmlRpcClient.cpp.
bool XmlRpcClient::readResponse | ( | ) | [protected, virtual] |
Definition at line 413 of file XmlRpcClient.cpp.
bool XmlRpcClient::setupConnection | ( | ) | [protected, virtual] |
Definition at line 193 of file XmlRpcClient.cpp.
bool XmlRpcClient::writeRequest | ( | ) | [protected, virtual] |
Definition at line 317 of file XmlRpcClient.cpp.
Definition at line 111 of file XmlRpcClient.h.
Definition at line 91 of file XmlRpcClient.h.
Definition at line 124 of file XmlRpcClient.h.
Definition at line 127 of file XmlRpcClient.h.
Definition at line 118 of file XmlRpcClient.h.
Definition at line 115 of file XmlRpcClient.h.
std::string XmlRpc::XmlRpcClient::_header |
Definition at line 104 of file XmlRpcClient.h.
std::string XmlRpc::XmlRpcClient::_host [protected] |
Definition at line 94 of file XmlRpcClient.h.
Definition at line 121 of file XmlRpcClient.h.
int XmlRpc::XmlRpcClient::_port [protected] |
Definition at line 96 of file XmlRpcClient.h.
std::string XmlRpc::XmlRpcClient::_request |
Definition at line 103 of file XmlRpcClient.h.
std::string XmlRpc::XmlRpcClient::_response |
Definition at line 105 of file XmlRpcClient.h.
Definition at line 108 of file XmlRpcClient.h.
std::string XmlRpc::XmlRpcClient::_uri [protected] |
Definition at line 95 of file XmlRpcClient.h.
const char XmlRpcClient::FAULT_TAG = "<fault>" [static] |
Definition at line 38 of file XmlRpcClient.h.
const char XmlRpcClient::METHODRESPONSE_TAG = "<methodResponse>" [static] |
Definition at line 37 of file XmlRpcClient.h.
const char XmlRpcClient::PARAM_ETAG = "</param>" [static] |
Definition at line 34 of file XmlRpcClient.h.
const char XmlRpcClient::PARAM_TAG = "<param>" [static] |
Definition at line 33 of file XmlRpcClient.h.
const char XmlRpcClient::PARAMS_ETAG = "</params>" [static] |
Definition at line 32 of file XmlRpcClient.h.
const char XmlRpcClient::PARAMS_TAG = "<params>" [static] |
Definition at line 31 of file XmlRpcClient.h.
const char XmlRpcClient::REQUEST_BEGIN = "<methodCall><methodName>" [static] |
Definition at line 29 of file XmlRpcClient.h.
const char XmlRpcClient::REQUEST_END = "</methodCall>\r\n" [static] |
Definition at line 35 of file XmlRpcClient.h.
const char XmlRpcClient::REQUEST_END_METHODNAME = "</methodName>\r\n" [static] |
Definition at line 30 of file XmlRpcClient.h.