00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018 #ifndef __CODEX_QUORUM_LOCALSERVER_H__
00019 #define __CODEX_QUORUM_LOCALSERVER_H__
00020
00021 #include "Socket.h"
00022
00023 namespace CODEX_Quorum
00024 {
00025 class SocketBuilder;
00026 class Message;
00027
00042 class LocalServer
00043 {
00044 public :
00052 LocalServer( int port, const SocketBuilder& socketBuilder );
00053
00059 virtual ~LocalServer();
00060
00068 virtual void enable();
00069
00076 virtual void disable();
00077
00079 int port() const;
00080
00085 virtual int set_fd( fd_set* fd_bitmap, SocketBase::StateType s );
00086
00091 virtual bool isset_fd( const fd_set* fd_bitmap,
00092 SocketBase::StateType s );
00093
00106 virtual void processRequest( SocketBase::StateType s ) = 0;
00107
00108 protected :
00112 SocketBase* socket() const;
00113
00117 const SocketBuilder& builder() const { return m_builder; }
00118
00123 void setSocket( SocketBase* socket ) { m_socket = socket; }
00124
00125 private :
00126 int m_port;
00127 SocketBase* m_socket;
00128 const SocketBuilder& m_builder;
00129 };
00130
00131 }
00132
00133 #endif