![]() |
MAK RTIspy API Documentation for HLA 1.3
|
00001 /********************************************************************* 00002 ** Copyright (c) 2010 MaK Technologies, Inc. 00003 ** All rights reserved. 00004 *********************************************************************/ 00005 /********************************************************************* 00006 ** $RCSfile: queryTransportMsg.h,v $ $Revision: 1.0 $ $State: Exp $ 00007 *********************************************************************/ 00008 00011 00012 #ifndef DtQueryTransportMsg_H_ 00013 #define DtQueryTransportMsg_H_ 00014 00015 #include "rtiMsConfig.h" 00016 #include "rtiMsg.h" 00017 #include "netQueryTransportMsg.h" 00018 #include "vlutil/vlFedTarget.h" 00019 00020 class DtConnectionMgr; 00021 class DtQueryTransportMsg; 00022 typedef void (*DtQueryTransportCb)(const DtQueryTransportMsg& msg, void* usr); 00023 00024 enum DtQueryTransMsgKind 00025 { 00026 DtAttributeQuery, 00027 DtInteractionQuery, 00028 }; 00029 00030 class DT_DLL_LRC DtQueryTransportMsg : public DtRtiMsg 00031 { 00032 public: 00033 00035 DtQueryTransportMsg(DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER); 00036 00038 DtQueryTransportMsg( 00039 DtFederateHandle targetFed, 00040 DtQueryTransMsgKind kind, 00041 DtObjectInstanceHandle objHand, 00042 DtAttributeHandle handle, 00043 DtTransportType transType, 00044 DtFederateHandle sendingFed = 0, 00045 DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER); 00046 00048 DtQueryTransportMsg(const DtNetQueryTransportMsg* netRepMsg, 00049 DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER); 00050 00052 virtual ~DtQueryTransportMsg(); 00053 00055 virtual DtRtiMsg* clone(bool copy = true) const; 00056 00058 virtual void set( 00059 DtFederateHandle targetFed, 00060 DtQueryTransMsgKind kind, 00061 DtObjectInstanceHandle objHand, 00062 DtAttributeHandle handle, 00063 DtTransportType transType, 00064 DtFederateHandle sendingFed = 0); 00065 00067 virtual void setQueryTransportMsgKind(DtQueryTransMsgKind kind); 00068 virtual DtQueryTransMsgKind queryTransportMsgKind() const; 00069 00071 virtual void setObjHandle(DtObjectInstanceHandle id); 00072 virtual DtObjectInstanceHandle objHandle() const; 00073 00074 virtual void setClassHandle(DtObjectClassHandle handle); 00075 virtual DtObjectClassHandle classHandle() const; 00076 00078 virtual void setRecipientFederate(DtFederateHandle hand); 00079 virtual DtFederateHandle recipientFederate() const; 00080 00082 virtual void setSendingFederate(DtFederateHandle handle); 00083 virtual DtFederateHandle sendingFederate() const; 00084 00086 virtual void setHandle(const DtAttributeHandle& handle); 00087 virtual const DtAttributeHandle& handle() const; 00088 00090 virtual void setTransportType( DtTransportType type ); 00091 virtual DtTransportType transportationType() const; 00092 00094 virtual void printData(DtLogicalTimeFactory* logicalTimeFactory) const; 00095 00096 public: 00097 00099 static DtRtiMsg* create(const DtNetMsgHeader* initial, 00100 DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER); 00101 00103 static DtRtiMsg* create(DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER); 00104 00106 static void addCallback(DtConnectionMgr *conn, 00107 DtQueryTransportCb cb, void *usr); 00108 static void removeCallback(DtConnectionMgr *conn, 00109 DtQueryTransportCb cb, void *usr); 00110 00111 protected: 00112 00114 virtual int tagFieldSize() const; 00115 00117 virtual DtNetQueryTransportMsg* netQueryTransportMsg(); 00118 virtual const DtNetQueryTransportMsg* netQueryTransportMsg() const; 00119 00121 virtual DtRtiMsgKind internalDtRtiMsgKind(); 00122 00124 virtual int minSize() const; 00125 00127 virtual DtQueryTransportMsg* self() const; 00128 00129 protected: 00130 00131 int myDirty; 00132 DtAttributeHandle* myHandle; 00133 DtTransportType myTransportType; 00134 }; 00135 00136 00137 inline DtQueryTransportMsg* DtQueryTransportMsg::self() const 00138 { 00139 return const_cast<DtQueryTransportMsg*>( this ); 00140 } 00141 00142 #endif 00143