00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018 #include "ClientServer.h"
00019
00020 using namespace CODEX_KeyService;
00021
00022 ClientServer::ClientServer(
00023 int port,
00024 const CODEX_Quorum::SocketBuilder& socketBuilder,
00025 CODEX_Events::DeadPileType& deadPile,
00026 CODEX_Events::QType& eventQueue,
00027 ClientMessageHandler* handler ) :
00028 CODEX_Quorum::LocalServer( port, socketBuilder ),
00029 m_deadPile( deadPile ),
00030 m_eventQueue( eventQueue ),
00031 m_handler( handler )
00032 {
00033 }
00034
00035 ClientServer::~ClientServer()
00036 {
00037 }
00038
00039 void
00040 ClientServer::processRequest( CODEX_Quorum::SocketBase::StateType s )
00041 {
00042 using CODEX_Quorum::SocketBase;
00043 SocketBase* skt;
00044 if ( s != CODEX_Quorum::SocketBase::kRead )
00045 {
00046 return;
00047 }
00048
00049
00050 try
00051 {
00052 skt = socket()->accept();
00053 new ClientActivity( port(), builder(),
00054 m_deadPile, m_eventQueue,
00055 m_handler,
00056 skt );
00057 }
00058 catch ( ... )
00059 {
00060
00061 }
00062 }