OverSim
XmlRpc::XmlRpcThreadedServer Class Reference

A class to handle multiple simultaneous XML RPC requests. More...

#include <XmlRpcThreadedServer.h>

Inheritance diagram for XmlRpc::XmlRpcThreadedServer:
XmlRpc::XmlRpcServer XmlRpc::XmlRpcSource

Classes

class  Worker
 Execute a request. More...

Public Member Functions

 XmlRpcThreadedServer (int nWorkers=6)
 Create a server object with a specified number of worker threads.
- Public Member Functions inherited from XmlRpc::XmlRpcServer
 XmlRpcServer ()
 Create a server object.
virtual ~XmlRpcServer ()
 Destructor.
void enableIntrospection (bool enabled=true)
 Specify whether introspection is enabled or not. Default is not enabled.
void addMethod (XmlRpcServerMethod *method)
 Add a command to the RPC server.
void removeMethod (XmlRpcServerMethod *method)
 Remove a command from the RPC server.
void removeMethod (const std::string &methodName)
 Remove a command from the RPC server by name.
XmlRpcServerMethodfindMethod (const std::string &name) const
 Look up a method by name.
bool bindAndListen (int port, int backlog=5)
 Create a socket, bind to the specified port, and set it in listen mode to make it available for clients.
int getPort (void) const
 Get the port number this server is listening on.
void work (double msTime)
 Process client requests for the specified time.
void exit ()
 Temporarily stop processing client requests and exit the work() method.
void shutdown ()
 Close all connections with clients and the socket file descriptor.
void listMethods (XmlRpcValue &result)
 Introspection support.
virtual std::string executeRequest (std::string const &request)
 Parses the request xml, runs the method, generates the response (header+xml).
virtual unsigned handleEvent (unsigned eventType)
 Handle client connection requests.
virtual void removeConnection (XmlRpcServerConnection *)
 Remove a connection from the dispatcher.
- Public Member Functions inherited from XmlRpc::XmlRpcSource
 XmlRpcSource (int fd=-1, bool deleteOnClose=false)
 Constructor.
virtual ~XmlRpcSource ()
 Destructor.
int getfd () const
 Return the file descriptor being monitored.
void setfd (int fd)
 Specify the file descriptor to monitor.
bool getKeepOpen () const
 Return whether the file descriptor should be kept open if it is no longer monitored.
void setKeepOpen (bool b=true)
 Specify whether the file descriptor should be kept open if it is no longer monitored.
virtual void close ()
 Close the owned fd. If deleteOnClose was specified at construction, the object is deleted.

Protected Attributes

std::vector< Worker_workers
 The worker pool.
XmlRpcMutex _mutex
 Serialize dispatcher access.
- Protected Attributes inherited from XmlRpc::XmlRpcServer
bool _introspectionEnabled
 Whether the introspection API is supported by this server.
XmlRpcDispatch _disp
 Event dispatcher.
MethodMap _methods
 Registered RPC methods.
XmlRpcServerMethod_listMethods
 List all registered RPC methods (only available if introspection is enabled)
XmlRpcServerMethod_methodHelp
 Return help string for a specified method (only available if introspection is enabled)

Additional Inherited Members

- Public Attributes inherited from XmlRpc::XmlRpcSource
bool _ssl
SSL_CTX_ssl_ctx
SSL_ssl_ssl
SSL_METHOD_ssl_meth
- Protected Types inherited from XmlRpc::XmlRpcServer
typedef std::map< std::string,
XmlRpcServerMethod * > 
MethodMap
 Collection of methods. This could be a set keyed on method name if we wanted...
- Protected Member Functions inherited from XmlRpc::XmlRpcServer
virtual void acceptConnection ()
 Accept a client connection request.
virtual XmlRpcServerConnectioncreateConnection (int socket)
 Create a new connection object for processing requests from a specific client.
virtual void dispatchConnection (XmlRpcServerConnection *sc)
 Hand off a new connection object to a dispatcher.
std::string parseRequest (std::string const &request, XmlRpcValue &params)
 Parse the methodName and parameters from the request.
bool executeMethod (const std::string &methodName, XmlRpcValue &params, XmlRpcValue &result)
 Execute a named method with the specified params.
bool executeMulticall (const std::string &methodName, XmlRpcValue &params, XmlRpcValue &result)
 Execute multiple calls and return the results in an array.
std::string generateResponse (std::string const &resultXml)
 Construct a response from the result XML.
std::string generateFaultResponse (std::string const &msg, int errorCode=-1)
 Construct a fault response.
std::string generateHeader (std::string const &body)
 Return the appropriate headers for the response.
- Static Protected Attributes inherited from XmlRpc::XmlRpcServer
static const char METHODNAME_TAG [] = "<methodName>"
static const char PARAMS_TAG [] = "<params>"
static const char PARAMS_ETAG [] = "</params>"
static const char PARAM_TAG [] = "<param>"
static const char PARAM_ETAG [] = "</param>"
static const std::string SYSTEM_MULTICALL
static const std::string METHODNAME = "methodName"
static const std::string PARAMS = "params"
static const std::string FAULTCODE = "faultCode"
static const std::string FAULTSTRING = "faultString"

Detailed Description

A class to handle multiple simultaneous XML RPC requests.

Definition at line 31 of file XmlRpcThreadedServer.h.

Constructor & Destructor Documentation

XmlRpc::XmlRpcThreadedServer::XmlRpcThreadedServer ( int  nWorkers = 6)
inline

Create a server object with a specified number of worker threads.

Definition at line 35 of file XmlRpcThreadedServer.h.

: _workers(nWorkers) {}

Member Data Documentation

XmlRpcMutex XmlRpc::XmlRpcThreadedServer::_mutex
protected

Serialize dispatcher access.

Definition at line 66 of file XmlRpcThreadedServer.h.

std::vector<Worker> XmlRpc::XmlRpcThreadedServer::_workers
protected

The worker pool.

Definition at line 62 of file XmlRpcThreadedServer.h.


The documentation for this class was generated from the following file: