00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018 #include "ServerQuorumDispatcher.h"
00019 #include "ServerState.h"
00020 #include "CODEX_Events/Event.h"
00021
00022 using namespace CODEX_Server;
00023
00024 void
00025 ServerQuorumDispatcher::operator()( const void* request,
00026 CODEX_Quorum::ResponseInfo* ri )
00027 {
00028 unsigned char* seqNum = (unsigned char*) request;
00029
00030 if ( NULL == ri )
00031 {
00032 if ( NULL != seqNum ) delete [] seqNum;
00033 return;
00034 }
00035
00036 if ( NULL == request )
00037 {
00038 delete ri;
00039 return;
00040 }
00041
00042
00043 unsigned int nFail = ri->failures();
00044
00045 if ( nFail > ServerState::nFaults )
00046 {
00047
00048 ri->fail();
00049 }
00050
00051
00052
00053 delete [] seqNum;
00054 delete ri;
00055 }