![]() |
MAK RTIspy API Documentation for HLA Evolved
|
00001 /********************************************************************* 00002 ** Copyright (c) 1998 MaK Technologies, Inc. 00003 ** All rights reserved. 00004 *********************************************************************/ 00005 /********************************************************************* 00006 ** $RCSfile: interRoMsg.h,v $ $Revision: 1.13 $ $State: Exp $ 00007 *********************************************************************/ 00008 00011 00012 #ifndef DtInteractRoMsg_H_ 00013 #define DtInteractRoMsg_H_ 00014 00015 #include "interactMsg.h" 00016 #include "netInterMsg.h" 00017 00019 00020 class DT_DLL_LRC DtInteractionRoMsg : public DtInteractionMsg 00021 { 00022 public: 00023 00025 DtInteractionRoMsg(DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER); 00026 00027 DtInteractionRoMsg( 00028 DtInteractionClassHandle theInteraction, 00029 const DtPhvps& theParameters, 00030 #ifdef DtIFSPEC1516 00031 rti1516::VariableLengthData const& theTag, 00032 #elif defined(DtIFSPEC1516E) 00033 rti1516e::VariableLengthData const& theTag, 00034 #else 00035 char const * theTag, 00036 #endif 00037 unsigned long channel, 00038 DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER); 00039 00040 DtInteractionRoMsg(const DtNetInteractionMsg* netRepMsg, 00041 DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER); 00042 00044 virtual ~DtInteractionRoMsg(); 00045 00047 virtual DtRtiMsg* clone(bool copy = true) const; 00048 00050 virtual void set( 00051 DtInteractionClassHandle theInteraction, 00052 const DtPhvps& theParameters, 00053 #ifdef DtIFSPEC1516 00054 rti1516::VariableLengthData const& theTag, 00055 #elif defined(DtIFSPEC1516E) 00056 rti1516e::VariableLengthData const& theTag, 00057 #else 00058 char const * theTag, 00059 #endif 00060 unsigned long channel); 00061 00063 virtual void setHandle(DtInteractionClassHandle hand); 00064 virtual DtInteractionClassHandle handle() const; 00065 00067 virtual void printData(DtLogicalTimeFactory* logicalTimeFactory) const; 00068 00069 public: 00070 00072 static DtRtiMsg* create(DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER); 00073 static DtRtiMsg* create(const DtNetMsgHeader* initial, 00074 DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER); 00075 00077 static void addCallback(DtConnectionMgr *conn, 00078 DtInteractionCb cb, void *usr, bool isMomCallback=false); 00079 static void removeCallback(DtConnectionMgr *conn, 00080 DtInteractionCb cb, void *usr, bool isMomCallback=false); 00081 00082 protected: 00083 00085 virtual DtNetParams* netParams(); 00086 virtual DtNetBigParams* netBigParams(); 00087 00089 virtual DtNetInteractionMsg* netInterRoMsg(); 00090 virtual const DtNetInteractionMsg* netInterRoMsg() const; 00091 00093 virtual DtRtiMsgKind internalDtRtiMsgKind(); 00094 00096 virtual int minSize(const DtPhvps* params=NULL, 00097 #ifdef DtIFSPEC1516 00098 rti1516::VariableLengthData const& theTag=theDefaultTag) const; 00099 #elif defined(DtIFSPEC1516E) 00100 rti1516e::VariableLengthData const& theTag=theDefaultTag) const; 00101 #else 00102 char const * theTag=NULL) const; 00103 #endif 00104 00106 virtual void setTagSize(int size); 00107 virtual int tagSize() const; 00108 00110 virtual DtNetU32* channelPtr() const; 00111 00113 virtual char* tagPtr(); 00114 00116 virtual DtInteractionRoMsg* selfRo() const; 00117 00118 }; 00119 00120 00121 inline DtInteractionRoMsg* DtInteractionRoMsg::selfRo() const 00122 { 00123 return const_cast<DtInteractionRoMsg*>( this ); 00124 } 00125 00126 #endif 00127