![]() |
MAK RTIspy API Documentation for HLA 1.3
|
00001 /********************************************************************* 00002 ** Copyright (c) 2008 MaK Technologies, Inc. 00003 ** All rights reserved. 00004 *********************************************************************/ 00005 /********************************************************************* 00006 ** $RCSfile: assistantExecStateMsg.h,v $ $Revision: 1.1 $ $State: Exp $ 00007 *********************************************************************/ 00008 00009 #ifndef DtAssistantExecStateMsg_H_ 00010 #define DtAssistantExecStateMsg_H_ 00011 00015 00016 #include <vlutil/vlInetAddr.h> 00017 #include <vlutil/vlString.h> 00018 #include <vlutil/vlUtil.h> 00019 00020 #include "assistantMsg.h" 00021 #include "federationInfo.h" 00022 #include "netAssistantExecStateMsg.h" 00023 00024 class DtRtiAssistantPeer; 00025 class DtRtiAssistantServer; 00026 class DtAssistantExecStateMsg; 00027 00028 typedef void (*DtAssistantExecStateCb)(const DtAssistantExecStateMsg& inter, void* usr); 00029 00034 class DT_DLL_ASSISTANT DtAssistantExecStateMsg : public DtAssistantMsg 00035 { 00036 public: 00037 00039 DtAssistantExecStateMsg(MAKRti::DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER); 00040 00041 DtAssistantExecStateMsg(const DtNetAssistantExecStateMsg* netRepMsg, 00042 MAKRti::DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER); 00043 00045 virtual ~DtAssistantExecStateMsg(); 00046 00048 virtual DtAssistantMsg* clone(bool copy = true) const; 00049 00051 virtual void printData() const; 00052 00053 public: 00054 00056 static DtAssistantMsg* create(const DtNetAssistantMsgHeader* initial, 00057 MAKRti::DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER); 00058 00059 static DtAssistantMsg* create(MAKRti::DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER); 00060 00063 static void addCallback(DtRtiAssistantServer* conn, 00064 DtAssistantExecStateCb cb, void* usr); 00065 static void removeCallback(DtRtiAssistantServer* conn, 00066 DtAssistantExecStateCb cb, void* usr); 00067 00070 static void addCallback(DtRtiAssistantPeer* conn, 00071 DtAssistantExecStateCb cb, void* usr); 00072 static void removeCallback(DtRtiAssistantPeer* conn, 00073 DtAssistantExecStateCb cb, void* usr); 00074 00075 void getAllData(unsigned int& numFedexs, 00076 std::vector<unsigned int>& fedexHandles, 00077 std::vector<MAKRti::DtString>& fedexNames, 00078 std::vector<unsigned int>& fedsInEachFedex, 00079 std::vector<unsigned int>& fedHandles, 00080 std::vector<MAKRti::DtString>& fedNames, 00081 std::vector<MAKRti::DtString>& fedHostNames, 00082 std::vector<MAKRti::DtInetAddr>& federateAddrs, 00083 std::vector<DtHlaVersionId>& hlaVers) const; 00084 00085 bool setAllData(unsigned int numFedexs, 00086 const std::vector<unsigned int>& fedexHandles, 00087 const std::vector<MAKRti::DtString>& fedexNames, 00088 const std::vector<unsigned int>& federatesInEachFedex, 00089 const std::vector<unsigned int>& fedHandles, 00090 const std::vector<MAKRti::DtString>& fedNames, 00091 const std::vector<MAKRti::DtString>& fedHostNames, 00092 const std::vector<MAKRti::DtInetAddr>& federateAddrs, 00093 const std::vector<DtHlaVersionId>& hlaVers); 00094 00095 protected: 00096 00098 virtual DtNetAssistantExecStateMsg* netAssistantExecStateMsg(); 00099 virtual const DtNetAssistantExecStateMsg* netAssistantExecStateMsg() const; 00100 00102 virtual DtAssistantMsgKind internalMsgKind(); 00103 00105 virtual int minSize() const; 00106 00108 virtual unsigned int numFederations() const; 00109 virtual void setNumFederations( unsigned int numFed ); 00110 00113 virtual unsigned long federationNamesSize() const; 00114 virtual void setFederationNamesSize(unsigned long); 00115 00117 virtual const char* federationNamesPtr() const; 00118 virtual char* federationNamesPtr(); 00119 00120 virtual bool setFederationNames( const std::vector<MAKRti::DtString>& fedexNames); 00121 virtual void federationNames(std::vector<MAKRti::DtString>& names) const; 00122 00124 virtual unsigned int numFederates() const; 00125 virtual void setNumFederates( unsigned int totalNum ); 00126 00128 virtual MAKRti::DtInetUtils::DtInetAddrFamily addressFamily() const; 00129 virtual void setAddressFamily( MAKRti::DtInetUtils::DtInetAddrFamily totalNum ); 00130 00133 virtual unsigned long federateNamesSize() const; 00134 virtual void setFederateNamesSize(unsigned long); 00135 00137 virtual const char* federateNamesPtr() const; 00138 virtual char* federateNamesPtr(); 00139 00140 virtual bool setFederateNames( const std::vector<MAKRti::DtString>& fedNames); 00141 virtual void federateNames(std::vector<MAKRti::DtString>& fedNames) const; 00142 00145 virtual unsigned long federateHostNamesSize() const; 00146 virtual void setFederateHostNamesSize(unsigned long); 00147 00149 virtual const char* federateHostNamesPtr() const; 00150 virtual char* federateHostNamesPtr(); 00151 00152 virtual bool setFederateHostNames( const std::vector<MAKRti::DtString>& fedHostNames); 00153 virtual void federateHostNames(std::vector<MAKRti::DtString>& names) const; 00154 00156 virtual void federationHandles(std::vector<unsigned int>& handles) const; 00157 virtual bool setFederationHandles(const std::vector<unsigned int>& fedexHandles); 00158 00160 virtual const DtNetU32* federationHandlesPtr() const; 00161 virtual DtNetU32* federationHandlesPtr(); 00162 00164 virtual void federateHandles(std::vector<unsigned int>& handles) const; 00165 virtual bool setFederateHandles(const std::vector<unsigned int>& fedHandles); 00166 00168 virtual const DtNetU32* federateHandlesPtr() const; 00169 virtual DtNetU32* federateHandlesPtr(); 00170 00172 virtual void federateHlaVersions(std::vector<DtHlaVersionId>& versions) const; 00173 virtual bool setFederateHlaVersions(const std::vector<DtHlaVersionId>& versions); 00174 00176 virtual const DtNetU8* federateHlaVersionsPtr() const; 00177 virtual DtNetU8* federateHlaVersionsPtr(); 00178 00179 00181 virtual void federateHostAddresses(std::vector<MAKRti::DtInetAddr>& addrs) const; 00182 virtual bool setFederateHostAddresses(const std::vector<MAKRti::DtInetAddr>& federateAddrs); 00183 00185 virtual const DtNetU128* federateHostAddrsPtr() const; 00186 virtual DtNetU128* federateHostAddrsPtr(); 00187 00188 00190 virtual void numFederatesInEachFederation(std::vector<unsigned int>& numFeds ) const; 00191 virtual bool setNumFederatesInEachFederation( 00192 const std::vector<unsigned int>& federatesInEachFedex); 00193 00194 virtual const DtNetU16* federatesInEachFederationPtr() const; 00195 virtual DtNetU16* federatesInEachFederationPtr(); 00196 00197 00198 00199 00200 }; 00201 00202 #endif