1#if !defined(XmlRpcServerBase_hxx)
2#define XmlRpcServerBase_hxx
14#ifdef BUILD_QPID_PROTON
16#include <proton/message.hpp>
27class XmlRpcConnectionBase;
47 unsigned int mConnectionId;
48 unsigned int mRequestId;
53class XmlRpcServerBase;
67 std::shared_ptr<XmlRpcServerBase>
mRpc;
125 static const unsigned int MaxConnections = 60;
130 void closeOldestConnection();
133#ifdef BUILD_QPID_PROTON
136 public std::enable_shared_from_this<XmlRpcProtonServer>
155 std::shared_ptr<resip::ProtonThreadBase::ProtonSenderBase>
mProtonSender;
157 unsigned int mConnectionId = 0;
158 unsigned int mNextRequestId = 0;
Handles cross-platform sockets compatibility.
bool getIsFinal() const noexcept
ResponseInfo(unsigned int connectionId, unsigned int requestId, const resip::Data &responseData, bool isFinal)
unsigned int getConnectionId() const noexcept
unsigned int getRequestId() const noexcept
const resip::Data & getResponseData() const noexcept
XmlRpcHandler(std::shared_ptr< XmlRpcServerBase > rpc)
virtual void buildFdSet(resip::FdSet &fdset)
void process(resip::FdSet &fdset)
std::shared_ptr< XmlRpcServerBase > mRpc
virtual void handleRequest(unsigned int connectionId, unsigned int requestId, const resip::Data &request)=0
void process(resip::FdSet &fdset)
resip::SelectInterruptor mSelectInterruptor
virtual ~XmlRpcServerBase()
ConnectionMap mConnections
virtual void buildFdSet(resip::FdSet &fdset)
virtual void handleRequest(unsigned int connectionId, unsigned int requestId, const resip::Data &request)
virtual void sendEvent(unsigned int connectionId, const resip::Data &eventData)
resip::Fifo< ResponseInfo > mResponseFifo
virtual void sendResponse(unsigned int connectionId, unsigned int requestId, const resip::Data &responseData, bool isFinal=true)
std::map< unsigned int, XmlRpcConnectionBase * > ConnectionMap
virtual void processIncoming(resip::FdSet &fdset)=0
static void logSocketError(int e)
virtual ~XmlRpcSocketServer()
virtual void buildFdSet(resip::FdSet &fdset)
void processIncoming(resip::FdSet &fdset)
An alternative to std::string, encapsulates an arbitrary buffer of bytes.
static const Data Empty
Constant that represents a zero-length data.
Object-oriented wrapper for your platform's file-descriptor set.
A templated, threadsafe message-queue class.
Used to 'artificially' interrupt a select call.
Represents a network address.
This Class is used to implement a primitive form of RPC using loose XML formatting.
IpVersion
An enumeration of IP versions.