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

ServerResponseHandler.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: ServerResponseHandler.cc,v 1.3 2004/05/19 15:56:58 mmarsh Exp $
00008 //
00009 // $Log: ServerResponseHandler.cc,v $
00010 // Revision 1.3  2004/05/19 15:56:58  mmarsh
00011 // *** empty log message ***
00012 //
00013 // Revision 1.2  2003/11/04 22:31:51  mmarsh
00014 // *** empty log message ***
00015 //
00016 //
00017 
00018 #include "ServerResponseHandler.h"
00019 #include "ServerResponseEvent.h"
00020 #include "ServerState.h"
00021 
00022 using namespace CODEX_Server;
00023 
00024 bool
00025 ServerResponseHandler::handler( ServerResponseEvent& event )
00026 {
00027    ServerState* serverState = ServerState::instance();
00028    if ( NULL == serverState )
00029    {
00030       sendEvent( 0, event.source(), true ); // NACK
00031       return true;
00032    }
00033    const CODEX_Quorum::RemoteServer* rs =
00034       serverState->getQuorumServer( event.server() );
00035    if ( NULL == rs )
00036    {
00037       // We have to wait until the server is connected again.
00038       return false;
00039    }
00040    CODEX_Quorum::RemoteServerReturn ret;
00041    rs->sendTo( event.message(), ret );
00042    sendEvent( 0,
00043               event.source(),
00044               ret.returnCode() == CODEX_Quorum::RemoteServerReturn::kFailure );
00045    return true;
00046 }

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