![]() |
MAK RTIspy API Documentation for HLA 1.3
|
00001 /********************************************************************* 00002 ** Copyright (c) 1998 MaK Technologies, Inc. 00003 ** All rights reserved. 00004 *********************************************************************/ 00005 /********************************************************************* 00006 ** $RCSfile: updateTsoMsg.h,v $ $Revision: 1.12 $ $State: Exp $ 00007 *********************************************************************/ 00008 00011 00013 #ifndef DtUpdateTsoMsg_H_ 00014 #define DtUpdateTsoMsg_H_ 00015 00016 #ifdef DtTIME 00017 00018 #include "updateMsg.h" 00019 #include "netUpdateTsoMsg.h" 00020 00021 class DtConnectionMgr; 00022 00023 class DT_DLL_LRC DtUpdateTsoMsg : public DtUpdateMsg 00024 { 00025 public: 00026 00028 DtUpdateTsoMsg(DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER); 00029 00030 DtUpdateTsoMsg( 00031 DtObjectInstanceHandle objHand, 00032 const char* objName, 00033 DtObjectClassHandle classHand, 00034 const DtAhvps& theAttributes, 00035 DtOrderHandle order, 00036 #ifdef DtIFSPEC1516 00037 rti1516::LogicalTime const & theTime, 00038 rti1516::VariableLengthData const& theTag, 00039 #elif defined(DtIFSPEC1516E) 00040 rti1516e::LogicalTime const & theTime, 00041 rti1516e::VariableLengthData const& theTag, 00042 #else 00043 RTI::FedTime const & theTime, 00044 char const * theTag, 00045 #endif 00046 unsigned long serialNumberVal, 00047 DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER); 00048 00049 DtUpdateTsoMsg(const DtNetUpdateTsoMsg* netRepMsg, 00050 DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER); 00051 00053 virtual ~DtUpdateTsoMsg(); 00054 00056 virtual DtRtiMsg* clone(bool copy = true) const; 00057 00059 virtual void set( 00060 DtObjectInstanceHandle objHand, 00061 const char* objName, 00062 DtObjectClassHandle theClass, 00063 const DtAhvps& theAttributes, 00064 DtOrderHandle order, 00065 #ifdef DtIFSPEC1516 00066 rti1516::LogicalTime const & theTime, 00067 rti1516::VariableLengthData const& theTag, 00068 #elif defined(DtIFSPEC1516E) 00069 rti1516e::LogicalTime const & theTime, 00070 rti1516e::VariableLengthData const& theTag, 00071 #else 00072 RTI::FedTime const & theTime, 00073 char const * theTag, 00074 #endif 00075 unsigned long serialNumberVal); 00076 00078 virtual void setClassHandle(DtObjectClassHandle hand); 00079 virtual DtObjectClassHandle classHandle() const; 00080 00082 virtual void setObjHandle(DtObjectInstanceHandle id); 00083 virtual DtObjectInstanceHandle objHandle() const; 00084 00086 virtual void setOrderType(DtOrderHandle type); 00087 virtual DtOrderHandle orderType() const; 00088 00090 #ifdef DtIFSPEC1516 00091 virtual void setTime(rti1516::LogicalTime const & time); 00092 virtual rti1516::LogicalTime const * time( 00093 DtLogicalTimeFactory* logicalTimeFactory) const; 00094 #elif defined(DtIFSPEC1516E) 00095 virtual void setTime(rti1516e::LogicalTime const & time); 00096 virtual rti1516e::LogicalTime const * time( 00097 DtLogicalTimeFactory* logicalTimeFactory) const; 00098 #else 00099 virtual void setTime(RTI::FedTime const & time); 00100 virtual RTI::FedTime const * time( 00101 DtLogicalTimeFactory* logicalTimeFactory) const; 00102 #endif 00103 00105 virtual void setSerialNumber(unsigned long handleValue); 00106 virtual unsigned long serialNumber() const; 00107 00109 virtual void printData(DtLogicalTimeFactory* logicalTimeFactory) const; 00110 00111 public: 00112 00114 static DtRtiMsg* create(DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER); 00115 static DtRtiMsg* create(const DtNetMsgHeader* initial, 00116 DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER); 00117 00119 static void addCallback(DtConnectionMgr *conn, DtUpdateCb cb, void *usr); 00120 static void removeCallback(DtConnectionMgr *conn, DtUpdateCb cb, void *usr); 00121 00122 protected: 00123 00125 virtual DtNetUpdateTsoMsg* netUpdateTsoMsg(); 00126 virtual const DtNetUpdateTsoMsg* netUpdateTsoMsg() const; 00127 00129 virtual DtRtiMsgKind internalDtRtiMsgKind(); 00130 00132 #ifdef DtIFSPEC1516 00133 virtual int minSize(rti1516::LogicalTime const * theTime=NULL, 00134 DtAhvps const * attrs=NULL, 00135 char const * objName=NULL, 00136 rti1516::VariableLengthData const& theTag=theDefaultTag) const; 00137 #elif defined(DtIFSPEC1516E) 00138 virtual int minSize(rti1516e::LogicalTime const * theTime=NULL, 00139 DtAhvps const * attrs=NULL, 00140 char const * objName=NULL, 00141 rti1516e::VariableLengthData const& theTag=theDefaultTag) const; 00142 #else 00143 virtual int minSize(RTI::FedTime const * theTime=NULL, 00144 DtAhvps const * attrs=NULL, 00145 char const * objName=NULL, 00146 char const * theTag=NULL) const; 00147 #endif 00148 00150 virtual void setNameSize(int size); 00151 virtual int nameSize() const; 00152 00154 virtual void setTagSize(int size); 00155 virtual int tagSize() const; 00156 00158 virtual void setTimeSize(int size); 00159 virtual int timeSize() const; 00160 00162 virtual DtNetAttrs* netAttrs(); 00163 virtual DtNetBigAttrs* netBigAttrs(); 00164 00166 virtual DtNetU32* channelPtr() const; 00167 00169 virtual char* timePtr(); 00170 00172 virtual char* namePtr(); 00173 00175 virtual char* tagPtr(); 00176 00178 virtual int timeFieldSize() const; 00179 00181 virtual DtUpdateTsoMsg* selfTso() const; 00182 }; 00183 00184 inline DtUpdateTsoMsg* DtUpdateTsoMsg::selfTso() const 00185 { 00186 return const_cast<DtUpdateTsoMsg*>( this ); 00187 } 00188 00189 #endif 00190 #endif