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

ResponseInfo.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: ResponseInfo.cc,v 1.3 2004/05/19 15:56:56 mmarsh Exp $
00008 //
00009 // $Log: ResponseInfo.cc,v $
00010 // Revision 1.3  2004/05/19 15:56:56  mmarsh
00011 // *** empty log message ***
00012 //
00013 // Revision 1.2  2003/11/04 22:17:23  mmarsh
00014 // General code cleanup.
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       // Already responded -- just return.
00033       if ( 0 != msg ) delete msg;
00034       return;
00035    }
00036    if ( (0 == msg) || (0 == m_cb) )
00037    {
00038       // Just tally...
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 }

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