![]() |
MAK RTIspy API Documentation for HLA 1.3
|
00001 /********************************************************************* 00002 ** Copyright (c) 1998 MaK Technologies, Inc. 00003 ** All rights reserved. 00004 *********************************************************************/ 00005 /********************************************************************* 00006 ** $RCSfile: deleteRoMsg.h,v $ $Revision: 1.10 $ $State: Exp $ 00007 *********************************************************************/ 00008 00011 00012 #ifndef DtDeleteRoMsg_H_ 00013 #define DtDeleteRoMsg_H_ 00014 00015 #include "deleteMsg.h" 00016 #include "netDeleteMsg.h" 00017 00018 class DtDeleteRoMsg; 00019 typedef void (*DtDeleteRoCb)(const DtDeleteRoMsg& inter, void* usr); 00020 00023 class DT_DLL_LRC DtDeleteRoMsg : public DtDeleteMsg 00024 { 00025 public: 00026 00028 DtDeleteRoMsg(DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER); 00029 00031 DtDeleteRoMsg( 00032 DtObjectInstanceHandle theObj, 00033 #ifdef DtIFSPEC1516 00034 rti1516::VariableLengthData const& theTag, 00035 #elif defined(DtIFSPEC1516E) 00036 rti1516e::VariableLengthData const& theTag, 00037 #else 00038 char const * theTag, 00039 #endif 00040 DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER); 00041 00043 DtDeleteRoMsg(const DtNetDeleteMsg* netRepMsg, 00044 DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER); 00045 00047 virtual ~DtDeleteRoMsg(); 00048 00050 virtual DtRtiMsg* clone(bool copy = true) const; 00051 00053 virtual void set(DtObjectInstanceHandle theObj, 00054 #ifdef DtIFSPEC1516 00055 rti1516::VariableLengthData const& theTag); 00056 #elif defined(DtIFSPEC1516E) 00057 rti1516e::VariableLengthData const& theTag); 00058 #else 00059 char const * theTag); 00060 #endif 00061 00063 virtual void setId(DtObjectInstanceHandle id); 00064 virtual DtObjectInstanceHandle id() const; 00065 00067 virtual void printData(DtLogicalTimeFactory* logicalTimeFactory) const; 00068 00069 public: 00070 00072 static DtRtiMsg* create(const DtNetMsgHeader* initial, 00073 DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER); 00074 00076 static DtRtiMsg* create(DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER); 00077 00079 static void addCallback(DtConnectionMgr *conn, 00080 DtDeleteRoCb cb, void *usr); 00081 static void removeCallback(DtConnectionMgr *conn, 00082 DtDeleteRoCb cb, void *usr); 00083 00084 protected: 00085 00087 virtual DtNetDeleteMsg* netDeleteRoMsg(); 00088 virtual const DtNetDeleteMsg* netDeleteRoMsg() const; 00089 00091 virtual DtRtiMsgKind internalDtRtiMsgKind(); 00092 00094 #ifdef DtIFSPEC1516 00095 virtual int minSize(rti1516::VariableLengthData const& theTag) const; 00096 #elif defined(DtIFSPEC1516E) 00097 virtual int minSize(rti1516e::VariableLengthData const& theTag) const; 00098 #else 00099 virtual int minSize(char const * theTag=NULL) const; 00100 #endif 00101 00103 virtual void setTagSize(int size); 00104 virtual int tagSize() const; 00105 00107 virtual char* tagPtr(); 00108 00110 virtual DtDeleteRoMsg* selfRo() const; 00111 }; 00112 00113 00114 inline DtDeleteRoMsg* DtDeleteRoMsg::selfRo() const 00115 { 00116 return (DtDeleteRoMsg*) this; 00117 } 00118 00119 #endif 00120