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: BroadcastRequestEvent.h,v 1.3 2004/05/19 15:56:57 mmarsh Exp $ 00008 // 00009 // $Log: BroadcastRequestEvent.h,v $ 00010 // Revision 1.3 2004/05/19 15:56:57 mmarsh 00011 // *** empty log message *** 00012 // 00013 // Revision 1.2 2003/11/04 22:31:50 mmarsh 00014 // *** empty log message *** 00015 // 00016 // 00017 00018 #ifndef __CODEX_SERVER_BROADCASTREQUESTEVENT_H__ 00019 #define __CODEX_SERVER_BROADCASTREQUESTEVENT_H__ 00020 00021 #include "CODEX_Events/Event.h" 00022 #include "CODEX_Events/Activity.h" 00023 #include "CODEX_Quorum/Message.h" 00024 #include "CODEX_Quorum/ResponseCallback.h" 00025 #include "CODEX_Quorum/QuorumSystem.h" 00026 #include "BroadcastRequestHandler.h" 00027 00028 namespace CODEX_Server 00029 { 00034 class BroadcastRequestEvent : public CODEX_Events::EventBase 00035 { 00036 public : 00038 BroadcastRequestEvent( CODEX_Events::Activity* source, 00039 BroadcastRequestHandler* destination, 00040 const CODEX_Quorum::Message& message, 00041 CODEX_Quorum::ResponseCallback* cb ); 00042 00044 virtual ~BroadcastRequestEvent(); 00045 00047 const CODEX_Quorum::Message& message() const { return m_message; } 00048 00050 CODEX_Quorum::ReturnVector& retVals() { return m_retVals; } 00051 00053 CODEX_Quorum::ResponseCallback* cb() const { return m_cb; } 00054 00056 bool bcast() const { return m_bcast; } 00057 00059 void setBcast() { m_bcast = true; } 00060 00062 unsigned long time() const { return m_time; } 00063 00065 void updateTime( unsigned long time ) { m_time = time; } 00066 00068 bool handle() { return m_destination->handler( *this ); } 00069 00070 private : 00071 BroadcastRequestHandler* m_destination; 00072 CODEX_Quorum::Message m_message; 00073 CODEX_Quorum::ResponseCallback* m_cb; 00074 CODEX_Quorum::ReturnVector m_retVals; 00075 bool m_bcast; 00076 unsigned long m_time; 00077 }; 00078 00079 } 00080 00081 #endif /* __CODEX_SERVER_BROADCASTREQUESTEVENT_H__ */
1.2.18