![]() |
MAK RTIspy API Documentation for HLA Evolved
|
00001 /********************************************************************* 00002 ** Copyright (c) 1998 MaK Technologies, Inc. 00003 ** All rights reserved. 00004 *********************************************************************/ 00005 /********************************************************************* 00006 ** $RCSfile: aliveMsg.h,v $ $Revision: 1.14 $ $State: Exp $ 00007 *********************************************************************/ 00008 00011 00012 #ifndef DtAliveMsg_H_ 00013 #define DtAliveMsg_H_ 00014 00015 #include "rtiMsg.h" 00016 #include "netRtiMsgHdr.h" 00017 #include "netAliveMsg.h" 00018 #include <vlutil/vlString.h> 00019 00020 class DtConnectionMgr; 00021 class DtAliveMsg; 00022 typedef void (*DtAliveCb)(const DtAliveMsg& inter, void* usr); 00023 00024 class DT_DLL_LRC DtAliveMsg : public DtRtiMsg 00025 { 00026 public: 00027 00029 DtAliveMsg(DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER); 00030 00032 DtAliveMsg(const DtNetAliveMsg* netRep, 00033 DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER); 00034 00036 virtual ~DtAliveMsg(); 00037 00039 virtual DtRtiMsg* clone(bool copy = true) const; 00040 00042 virtual void printData(DtLogicalTimeFactory* logicalTimeFactory) const; 00043 00044 public: 00045 00047 static DtRtiMsg* create(const DtNetMsgHeader* initial, 00048 DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER); 00049 00050 static DtRtiMsg* create(DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER); 00051 00053 static void addCallback(DtConnectionMgr* conn, 00054 DtAliveCb cb, void* usr, bool isMomCallback=false); 00055 static void removeCallback(DtConnectionMgr* conn, 00056 DtAliveCb cb, void* usr, bool isMomCallback=false); 00057 00058 protected: 00059 00061 virtual DtNetAliveMsg* netAliveMsg(); 00062 virtual const DtNetAliveMsg* netAliveMsg() const; 00063 00065 virtual DtRtiMsgKind internalDtRtiMsgKind(); 00066 00068 virtual int minSize() const; 00069 00071 virtual DtAliveMsg* self() const; 00072 00073 protected: 00074 00075 }; 00076 00077 00078 inline DtAliveMsg* DtAliveMsg::self() const 00079 { 00080 return const_cast<DtAliveMsg*>( this ); 00081 } 00082 00083 #endif 00084