![]() |
MAK RTIspy API Documentation for HLA Evolved
|
00001 /********************************************************************* 00002 ** Copyright (c) 2005 MaK Technologies, Inc. 00003 ** All rights reserved. 00004 *********************************************************************/ 00005 /********************************************************************* 00006 ** $RCSfile: forwarderResignMsg.h,v $ $Revision: 1.6 $ $State: Exp $ 00007 *********************************************************************/ 00008 00011 00012 #ifndef DtForwarderResignMsg_H_ 00013 #define DtForwarderResignMsg_H_ 00014 00015 #include "rtiMsConfig.h" 00016 #include "rtiMsg.h" 00017 00018 class DtConnectionMgr; 00019 class DtForwarderResignMsg; 00020 class DtNetForwarderResignMsg; 00021 typedef void (*DtForwarderResignCb)(const DtForwarderResignMsg& inter, void* usr); 00022 00023 class DT_DLL_LRC DtForwarderResignMsg : public DtRtiMsg 00024 { 00025 public: 00026 enum DtResignStatus 00027 { 00028 ResignCommand = 0, 00029 ResignResponseSuccess, 00030 ResignResponseNotFound 00031 }; 00032 00034 DtForwarderResignMsg(DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER); 00035 00037 DtForwarderResignMsg(const DtNetForwarderResignMsg* netRep, 00038 DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER); 00039 00041 DtForwarderResignMsg( unsigned long target, DtResignStatus status, 00042 DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER); 00043 00045 virtual ~DtForwarderResignMsg(); 00046 00048 virtual DtRtiMsg* clone(bool copy = true) const; 00049 00050 00052 virtual void set( unsigned long target, DtResignStatus status ); 00053 00055 virtual void setResignStatus( DtResignStatus status ); 00056 virtual DtResignStatus resignStatus() const; 00057 00060 virtual void setDestination( unsigned long target ); 00061 virtual unsigned long destination() const; 00062 00064 virtual void printData(DtLogicalTimeFactory* logicalTimeFactory) const; 00065 00066 public: 00067 00069 static DtRtiMsg* create(const DtNetMsgHeader* initial, 00070 DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER); 00071 00072 static DtRtiMsg* create(DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER); 00073 00075 static void addCallback(DtConnectionMgr* conn, 00076 DtForwarderResignCb cb, void* usr, bool isMomCallback=false); 00077 static void removeCallback(DtConnectionMgr* conn, 00078 DtForwarderResignCb cb, void* usr, bool isMomCallback=false); 00079 00080 protected: 00081 00083 virtual DtNetForwarderResignMsg* netForwarderResignMsg(); 00084 virtual const DtNetForwarderResignMsg* netForwarderResignMsg() const; 00085 00087 virtual DtRtiMsgKind internalDtRtiMsgKind(); 00088 00090 virtual int minSize() const; 00091 00093 virtual DtForwarderResignMsg* self() const; 00094 00095 protected: 00096 00097 }; 00098 00099 inline DtForwarderResignMsg* DtForwarderResignMsg::self() const 00100 { 00101 return const_cast<DtForwarderResignMsg*>( this ); 00102 } 00103 00104 00105 #endif 00106