1
#ifndef SERVER_PSTREAM_HPP_INCLUDED
2
#define SERVER_PSTREAM_HPP_INCLUDED
5
#include <winsock.h> /* For XMLRPC_SOCKET (= SOCKET) */
8
#include <xmlrpc-c/config.h> /* For XMLRPC_SOCKET */
9
#include <xmlrpc-c/registry.hpp>
10
#include <xmlrpc-c/packetsocket.hpp>
14
class serverPstreamConn {
22
constrOpt & registryPtr (xmlrpc_c::registryPtr const& arg);
23
constrOpt & registryP (const xmlrpc_c::registry * const& arg);
24
constrOpt & socketFd (XMLRPC_SOCKET const& arg);
27
xmlrpc_c::registryPtr registryPtr;
28
const xmlrpc_c::registry * registryP;
29
XMLRPC_SOCKET socketFd;
38
serverPstreamConn(constrOpt const& opt);
43
runOnce(volatile const int * const interruptP,
47
runOnce(bool * const eofP);
51
// 'registryP' is what we actually use; 'registryHolder' just holds a
52
// reference to 'registryP' so the registry doesn't disappear while
53
// this server exists. But note that if the creator doesn't supply
54
// a registryPtr, 'registryHolder' is just a placeholder variable and
55
// the creator is responsible for making sure the registry doesn't
56
// go anywhere while the server exists.
58
registryPtr registryHolder;
59
const registry * registryP;
61
packetSocket * packetSocketP;
62
// The packet socket over which we received RPCs.
63
// This is permanently connected to our fixed client.
66
establishRegistry(constrOpt const& opt);
69
establishPacketSocket(constrOpt const& opt);