00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018 #include "UnicastRequestEvent.h"
00019 #include "ServerState.h"
00020
00021 #include "ServerExceptions.h"
00022
00023 using namespace CODEX_Server;
00024
00025 UnicastRequestEvent::UnicastRequestEvent(
00026 CODEX_Events::Activity* source,
00027 UnicastRequestHandler* destination,
00028 const CODEX_Quorum::MessageVector& messages,
00029 const unsigned char* key,
00030 CODEX_Quorum::ResponseCallback* cb ) :
00031 CODEX_Events::EventBase( source ),
00032 m_destination( destination ),
00033 m_messages( messages ),
00034 m_cb( cb ),
00035 m_bcast( false ),
00036 m_time( 0 )
00037 {
00038 memcpy( m_key, key, ServerState::nMID );
00039 CODEX_Quorum::QuorumSystem* qs = ServerState::instance()->quorumSystem();
00040 if ( NULL == qs )
00041 {
00042 throw NoQuorumSystemException( __FILE__ , __LINE__ );
00043 }
00044 for ( unsigned int i = 0 ; i < qs->quorumSystemSize() ; ++i )
00045 {
00046 m_retVals.push_back(CODEX_Quorum::RemoteServerReturn());
00047 }
00048 }
00049
00050 UnicastRequestEvent::~UnicastRequestEvent()
00051 {
00052 }