![]() |
MAK RTIspy API Documentation for HLA 1516
|
00001 /********************************************************************* 00002 ** Copyright (c) 2010 MaK Technologies, Inc. 00003 ** All rights reserved. 00004 *********************************************************************/ 00005 /********************************************************************* 00006 ** $RCSfile: queryInterTransportMsg.h,v $ $Revision: 1.0 $ $State: Exp $ 00007 *********************************************************************/ 00008 00011 00012 #ifndef DtQueryInterTransportMsg_H_ 00013 #define DtQueryInterTransportMsg_H_ 00014 00015 #include "rtiMsConfig.h" 00016 #include "rtiMsg.h" 00017 #include "netQueryInterMsg.h" 00018 #include "vlutil/vlFedTarget.h" 00019 00020 class DtConnectionMgr; 00021 class DtQueryInterTransportMsg; 00022 typedef void (*DtQueryInterTransportCb)(const DtQueryInterTransportMsg& msg, void* usr); 00023 00024 class DT_DLL_LRC DtQueryInterTransportMsg : public DtRtiMsg 00025 { 00026 public: 00027 00029 DtQueryInterTransportMsg(DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER); 00030 00032 DtQueryInterTransportMsg( 00033 DtFederateHandle targetFed, 00034 DtInteractionClassHandle handle, 00035 DtFederateHandle sendingFed, 00036 DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER); 00037 00039 DtQueryInterTransportMsg(const DtNetQueryInterTransportMsg* netRepMsg, 00040 DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER); 00041 00043 virtual ~DtQueryInterTransportMsg(); 00044 00046 virtual DtRtiMsg* clone(bool copy = true) const; 00047 00049 virtual void set( 00050 DtFederateHandle targetFed, 00051 DtInteractionClassHandle handle, 00052 DtFederateHandle sendingFed); 00053 00055 virtual void setClassHandle(DtObjectClassHandle handle); 00056 virtual DtObjectClassHandle classHandle() const; 00057 00059 virtual void setRecipientFederate(DtFederateHandle hand); 00060 virtual DtFederateHandle recipientFederate() const; 00061 00063 virtual void setSendingFederate(DtFederateHandle hand); 00064 virtual DtFederateHandle sendingFederate() const; 00065 00067 virtual void setHandle(const DtInteractionClassHandle& handle); 00068 virtual const DtInteractionClassHandle& handle() const; 00069 00071 virtual void printData(DtLogicalTimeFactory* logicalTimeFactory) const; 00072 00073 public: 00074 00076 static DtRtiMsg* create(const DtNetMsgHeader* initial, 00077 DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER); 00078 00080 static DtRtiMsg* create(DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER); 00081 00083 static void addCallback(DtConnectionMgr *conn, 00084 DtQueryInterTransportCb cb, void *usr); 00085 static void removeCallback(DtConnectionMgr *conn, 00086 DtQueryInterTransportCb cb, void *usr); 00087 00088 protected: 00089 00091 virtual int tagFieldSize() const; 00092 00094 virtual DtNetQueryInterTransportMsg* netQueryInterTransportMsg(); 00095 virtual const DtNetQueryInterTransportMsg* netQueryInterTransportMsg() const; 00096 00098 virtual DtRtiMsgKind internalDtRtiMsgKind(); 00099 00101 virtual int minSize() const; 00102 00104 virtual DtQueryInterTransportMsg* self() const; 00105 00106 protected: 00107 00108 int myDirty; 00109 DtInteractionClassHandle* myHandle; 00110 }; 00111 00112 00113 inline DtQueryInterTransportMsg* DtQueryInterTransportMsg::self() const 00114 { 00115 return const_cast<DtQueryInterTransportMsg*>( this ); 00116 } 00117 00118 #endif 00119