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 }
1.4.1