00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018 #include "ResponseInfo.h"
00019
00020 using namespace CODEX_Quorum;
00021
00022 ResponseInfo::~ResponseInfo()
00023 {
00024 if ( 0 != m_cb ) delete m_cb;
00025 }
00026
00027 void
00028 ResponseInfo::add( unsigned int server, Message* msg )
00029 {
00030 if ( m_map.end() != m_map.find(server) )
00031 {
00032
00033 if ( 0 != msg ) delete msg;
00034 return;
00035 }
00036 if ( (0 == msg) || (0 == m_cb) )
00037 {
00038
00039 m_map.insert( ServerMap::value_type( server, false ) );
00040 ++m_failures;
00041 if ( 0 != msg ) delete msg;
00042 return;
00043 }
00044 bool cbRetVal = (*m_cb)( server, msg );
00045 m_map.insert( ServerMap::value_type( server, cbRetVal ) );
00046 if ( ! cbRetVal ) ++m_failures;
00047 }