![]() |
MAK RTIspy API Documentation for HLA 1.3
|
00001 /********************************************************************* 00002 ** Copyright (c) 2004 MaK Technologies, Inc. 00003 ** All rights reserved. 00004 *********************************************************************/ 00005 /********************************************************************* 00006 ** $RCSfile: syncPointQueryMsg.h,v $ $Revision: 1.6 $ $State: Exp $ 00007 *********************************************************************/ 00008 00011 00012 #ifndef DtSyncPointQueryMsg_H_ 00013 #define DtSyncPointQueryMsg_H_ 00014 00015 #include "rtiMsg.h" 00016 #include "netSyncPointQueryMsg.h" 00017 #include "attrHandSet.h" 00018 #include <vlutil/vlString.h> 00019 00020 class DtConnectionMgr; 00021 class DtSyncPointQueryMsg; 00022 00023 enum DtSyncPointQueryKind 00024 { 00025 DtSyncPointQueryPoints, 00026 DtSyncPointQueryStatus 00027 }; 00028 00029 typedef void (*DtSyncPointQueryCb)(const DtSyncPointQueryMsg& msg, void* usr); 00030 00031 class DT_DLL_LRC DtSyncPointQueryMsg : public DtRtiMsg 00032 { 00033 public: 00034 00036 DtSyncPointQueryMsg(DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER); 00037 00038 DtSyncPointQueryMsg( 00039 DtSyncPointQueryKind kind, 00040 DtInteractionClassHandle classHandleValue, 00041 DtParameterHandle syncPointParameter, 00042 DtParameterHandle syncPointFederateParameter=0, 00043 DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER); 00044 00046 DtSyncPointQueryMsg(const DtNetSyncPointQueryMsg* netRepMsg, 00047 DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER); 00048 00050 virtual ~DtSyncPointQueryMsg(); 00051 00053 virtual DtRtiMsg* clone(bool copy = true) const; 00054 00056 virtual void set( 00057 DtSyncPointQueryKind kind, 00058 DtInteractionClassHandle classHandleValue, 00059 DtParameterHandle syncPointParameter, 00060 DtParameterHandle syncPointFederateParameter=0); 00061 00063 virtual void setQueryKind(DtSyncPointQueryKind kind); 00064 virtual DtSyncPointQueryKind queryKind() const; 00065 00067 virtual void setClassHandle(DtInteractionClassHandle handle); 00068 virtual DtInteractionClassHandle classHandle() const; 00069 00071 virtual void setSyncPointHandle(DtParameterHandle handle); 00072 virtual DtParameterHandle syncPointHandle() const; 00073 00075 virtual void setSyncPointFederateHandle(DtParameterHandle handle); 00076 virtual DtParameterHandle syncPointFederateHandle() const; 00077 00079 virtual void printData(DtLogicalTimeFactory* logicalTimeFactory) const; 00080 00081 public: 00082 00084 static DtRtiMsg* create(const DtNetMsgHeader* initial, 00085 DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER); 00086 00088 static DtRtiMsg* create(DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER); 00089 00091 static void addCallback(DtConnectionMgr *conn, 00092 DtSyncPointQueryCb cb, void *usr); 00093 static void removeCallback(DtConnectionMgr *conn, 00094 DtSyncPointQueryCb cb, void *usr); 00095 00096 protected: 00097 00099 virtual DtNetSyncPointQueryMsg* netSyncPointQueryMsg(); 00100 virtual const DtNetSyncPointQueryMsg* netSyncPointQueryMsg() const; 00101 00103 virtual DtRtiMsgKind internalDtRtiMsgKind(); 00104 00106 virtual int minSize() const; 00107 00109 virtual DtSyncPointQueryMsg* self() const; 00110 00111 protected: 00112 00113 }; 00114 00115 00116 inline DtSyncPointQueryMsg* DtSyncPointQueryMsg::self() const 00117 { 00118 return const_cast<DtSyncPointQueryMsg*>( this ); 00119 } 00120 00121 #endif 00122