Main Page | Namespace List | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Namespace Members | Class Members | File Members | Related Pages

ClientServer.cc

00001 /*
00002  * Copyright 2003 Michael A. Marsh, Cornell University. All rights reserved.
00003  * This software is released under the modified BSD license.
00004  * See the file LICENSE in the top-level directory for details.
00005  */
00006 //
00007 // $Id: ClientServer.cc,v 1.3 2004/05/19 15:56:51 mmarsh Exp $
00008 //
00009 // $Log: ClientServer.cc,v $
00010 // Revision 1.3  2004/05/19 15:56:51  mmarsh
00011 // *** empty log message ***
00012 //
00013 // Revision 1.2  2003/11/04 22:31:49  mmarsh
00014 // *** empty log message ***
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    // We're killing servers that throw exceptions, so just silently
00049    // forget about this if accept(2) fails.
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       // ignore
00061    }
00062 }

Generated on Fri May 6 17:38:53 2005 for COrnell Data EXchange (CODEX) by  doxygen 1.4.1