![]() |
MAK RTIspy API Documentation for HLA 1516
|
00001 /********************************************************************* 00002 ** Copyright (c) 1998 MaK Technologies, Inc. 00003 ** All rights reserved. 00004 *********************************************************************/ 00005 /********************************************************************* 00006 ** $RCSfile: interTsoMsg.h,v $ $Revision: 1.13 $ $State: Exp $ 00007 *********************************************************************/ 00008 00011 00012 #ifndef DtInteractionTsoMsg_H_ 00013 #define DtInteractionTsoMsg_H_ 00014 00015 #ifdef DtTIME 00016 00017 #include "interactMsg.h" 00018 #include "netIntTsoMsg.h" 00019 00021 00022 class DT_DLL_LRC DtInteractionTsoMsg : public DtInteractionMsg 00023 { 00024 public: 00025 00027 DtInteractionTsoMsg(DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER); 00028 00029 DtInteractionTsoMsg( 00030 DtInteractionClassHandle theInteraction, 00031 const DtPhvps& theParameters, 00032 DtOrderHandle type, 00033 #ifdef DtIFSPEC1516 00034 rti1516::LogicalTime const & theTime, 00035 rti1516::VariableLengthData const& theTag, 00036 #elif defined(DtIFSPEC1516E) 00037 rti1516e::LogicalTime const & theTime, 00038 rti1516e::VariableLengthData const& theTag, 00039 #else 00040 RTI::FedTime const & theTime, 00041 char const * theTag, 00042 #endif 00043 unsigned long serialNumberVal, 00044 unsigned long channel, 00045 DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER); 00046 00047 DtInteractionTsoMsg(const DtNetInteractionTsoMsg* netRepMsg, 00048 DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER); 00049 00051 virtual ~DtInteractionTsoMsg(); 00052 00054 virtual DtRtiMsg* clone(bool copy = true) const; 00055 00057 virtual void set( 00058 DtInteractionClassHandle theInteraction, 00059 const DtPhvps& theParameters, 00060 DtOrderHandle type, 00061 #ifdef DtIFSPEC1516 00062 rti1516::LogicalTime const & theTime, 00063 rti1516::VariableLengthData const& theTag, 00064 #elif defined(DtIFSPEC1516E) 00065 rti1516e::LogicalTime const & theTime, 00066 rti1516e::VariableLengthData const& theTag, 00067 #else 00068 RTI::FedTime const & theTime, 00069 char const * theTag, 00070 #endif 00071 unsigned long serialNumberVal, 00072 unsigned long channel); 00073 00075 virtual void setHandle(DtInteractionClassHandle hand); 00076 virtual DtInteractionClassHandle handle() const; 00077 00079 virtual void setOrderType(DtOrderHandle type); 00080 virtual DtOrderHandle orderType() const; 00081 00083 #ifdef DtIFSPEC1516 00084 virtual void setTime(rti1516::LogicalTime const & time); 00085 virtual rti1516::LogicalTime const * time( 00086 DtLogicalTimeFactory* logicalTimeFactory) const; 00087 #elif defined(DtIFSPEC1516E) 00088 virtual void setTime(rti1516e::LogicalTime const & time); 00089 virtual rti1516e::LogicalTime const * time( 00090 DtLogicalTimeFactory* logicalTimeFactory) const; 00091 #else 00092 virtual void setTime(RTI::FedTime const & time); 00093 virtual RTI::FedTime const * time( 00094 DtLogicalTimeFactory* logicalTimeFactory) const; 00095 #endif 00096 00098 virtual void setSerialNumber(unsigned long handleValue); 00099 virtual unsigned long serialNumber() const; 00100 00102 virtual void printData(DtLogicalTimeFactory* logicalTimeFactory) const; 00103 00104 public: 00105 00107 static DtRtiMsg* create(DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER); 00108 static DtRtiMsg* create(const DtNetMsgHeader* initial, 00109 DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER); 00110 00112 static void addCallback(DtConnectionMgr *conn, 00113 DtInteractionCb cb, void *usr, bool isMomCallback=false); 00114 static void removeCallback(DtConnectionMgr *conn, 00115 DtInteractionCb cb, void *usr, bool isMomCallback=false); 00116 00117 protected: 00118 00120 virtual DtNetParams* netParams(); 00121 virtual DtNetBigParams* netBigParams(); 00122 00124 virtual DtNetInteractionTsoMsg* netInterTsoMsg(); 00125 virtual const DtNetInteractionTsoMsg* netInterTsoMsg() const; 00126 00128 virtual DtRtiMsgKind internalDtRtiMsgKind(); 00129 00131 #ifdef DtIFSPEC1516 00132 virtual int minSize(const DtPhvps* params=NULL, 00133 rti1516::LogicalTime const * theTime=NULL, 00134 rti1516::VariableLengthData const& theTag=theDefaultTag) const; 00135 #elif defined(DtIFSPEC1516E) 00136 virtual int minSize(const DtPhvps* params=NULL, 00137 rti1516e::LogicalTime const * theTime=NULL, 00138 rti1516e::VariableLengthData const& theTag=theDefaultTag) const; 00139 #else 00140 virtual int minSize(const DtPhvps* params=NULL, 00141 RTI::FedTime const * theTime=NULL, 00142 char const * theTag=NULL) const; 00143 #endif 00144 00146 virtual void setTagSize(int size); 00147 virtual int tagSize() const; 00148 00150 virtual void setTimeSize(int size); 00151 virtual int timeSize() const; 00152 00154 virtual DtNetU32* channelPtr() const; 00155 00157 virtual char* tagPtr(); 00158 00160 DtNetU32* serialNumberPtr() const; 00161 00163 virtual char* timePtr(); 00164 00166 virtual int timeFieldSize() const; 00167 00169 virtual DtInteractionTsoMsg* selfTso() const; 00170 }; 00171 00172 inline DtInteractionTsoMsg* DtInteractionTsoMsg::selfTso() const 00173 { 00174 return const_cast<DtInteractionTsoMsg*>( this ); 00175 } 00176 00177 #endif 00178 #endif