1 #ifndef SZA_UTIL_SERVER_H
2 #define SZA_UTIL_SERVER_H
19 #include "carma/szautil/Runnable.h"
30 class Server :
public Runnable {
37 virtual ~ServerData();
40 class ServerConnection {
45 PipeQueue::MsgQueue msgQueue_;
54 std::vector<unsigned char> bytes_;
73 ServerConnection(
int fd,
74 unsigned readBufSize,
unsigned sendBufSize,
79 void setSendBufferSize(
unsigned size);
80 void setReadBufferSize(
unsigned size);
82 void packClientData(NetDat& dat);
83 void packClientData(
unsigned char* buffer,
unsigned datSize);
84 void stageClientData(
unsigned char* buffer,
unsigned datSize);
91 Server(
bool spawnThread,
int listenPort,
unsigned readBufSize=0,
92 unsigned sendBufSize=0);
106 unsigned readBufSize_;
108 unsigned sendBufSize_;
112 virtual void serviceSelect();
116 virtual void timeOutAction() {};
120 virtual void readClientData(ServerConnection* conn) {};
124 virtual void acceptClientAction(ServerConnection* conn) {};
125 void sendClientData(NetDat& dat, ServerConnection* client);
127 void setReadBufSize(
unsigned size);
128 void setSendBufSize(
unsigned size);
130 void setTimeOutSeconds(
unsigned int seconds);
141 unsigned int timeOutSeconds_;
146 SignalTask* signalTask_;
156 TcpListener* listener_;
161 std::list<ServerConnection*> clients_;
166 void initMembers(
int listenPort,
unsigned readBufSize,
unsigned sendBufSize);
172 void listen(
unsigned port,
unsigned nClients = 5);
177 void sendShutdownMsg();
182 void acceptConnection();
194 void readFromClient(NetHandler* client);
199 static SIGNALTASK_HANDLER_FN(shutDown);
204 static RUN_FN(runFn);
208 void checkClientsForReadableData();
212 void checkClientsForWritability();
214 static NET_READ_HANDLER(readHandler);
215 static NET_SEND_HANDLER(sendHandler);
216 static NET_ERROR_HANDLER(errHandler);
225 #endif // End #ifndef SZA_UTIL_SERVER_H
Tagged: Wed Jul 6 13:41:09 PDT 2005.
Tagged: Fri Nov 14 12:39:36 UTC 2003.
Tagged: Sun Apr 4 22:36:40 UTC 2004.
Tagged: Tue May 2 16:31:46 PDT 2006.
Started: Thu Feb 26 22:08:23 UTC 2004.
Tagged: Fri Nov 14 12:39:34 UTC 2003.