![]() |
MAK RTIspy API Documentation for HLA 1.3
|
00001 /********************************************************************* 00002 ** Copyright (c) 2008 MaK Technologies, Inc. 00003 ** All rights reserved. 00004 *********************************************************************/ 00005 /******************************************************************************* 00006 ** $RCSfile: federationStateInfo.h,v $ $Revision: 1.8 $ $State: Exp $ 00007 *******************************************************************************/ 00008 00009 #ifndef federationStateInfo_H_ 00010 #define federationStateInfo_H_ 00011 00016 00017 #include "rtiVersion.h" 00018 #include <vlutil/vlString.h> 00019 #include <vlutil/vlInetAddr.h> 00020 #include <map> 00021 #include <set> 00022 00025 struct DtFederationInfo 00026 { 00027 public: 00028 DtFederationInfo( MAKRti::DtString name = MAKRti::DtString::nullString(), int handle = -1, 00029 MAKRti::DtString file = MAKRti::DtString::nullString(), bool testEn = true, 00030 MAKRti::DtInetAddr webIp = MAKRti::DtInetAddr(), int webPort = -1 ) : 00031 federationName( name ), 00032 federationHandle( handle ), 00033 fedFileName( file ), 00034 testEnabled( testEn ) 00035 {} 00036 00037 MAKRti::DtString federationName; 00038 int federationHandle; 00039 MAKRti::DtString fedFileName; 00040 bool testEnabled; 00041 }; 00042 00046 class DT_DLL_ASSISTANT DtFederateTimeStateInfo 00047 { 00048 public: 00049 DtFederateTimeStateInfo( unsigned long connId = 0, MAKRti::DtString fedType = "", 00050 MAKRti::DtString fedName = "", int handle = -1, MAKRti::DtString fedHostName = "", 00051 MAKRti::DtInetAddr host = MAKRti::DtInetAddr(), DtHlaVersionId hlaVer = DtHla1516, 00052 MAKRti::DtInetAddr webServerHost = MAKRti::DtInetAddr(), 00053 int webServerPort = 0, bool testEn = false, bool testInProg = false, 00054 bool contTest = false, unsigned numInitTests = 0, 00055 unsigned numTestReps = 0 ) : 00056 connId( connId ), 00057 federateType( fedType ), 00058 federateName( fedName ), 00059 federateHandle( handle ), 00060 federateHostName( fedHostName ), 00061 federateHost( host ), 00062 hlaVersion( hlaVer ), 00063 federateWebServerHost( webServerHost ), 00064 federateWebServerPort( webServerPort ), 00065 testEnabled( testEn ), 00066 testInProgress( testInProg ), 00067 continuousTest( contTest ), 00068 numInitiatedTests( numInitTests ), 00069 numTestReports( numTestReps ), 00070 isRegulating( false ), 00071 isConstrained( false ), 00072 isReconnecting( false ), 00073 isDisconnected( false ) {} 00074 00075 bool operator==(const DtFederateTimeStateInfo& rhs) const 00076 { 00077 return ( connId == rhs.connId && federateType == rhs.federateType && 00078 federateName == rhs.federateName && 00079 federateHostName == rhs.federateHostName && 00080 federateHandle == rhs.federateHandle && 00081 federateHost == rhs.federateHost && 00082 hlaVersion == rhs.hlaVersion && 00083 federateWebServerHost == rhs.federateWebServerHost && 00084 federateWebServerPort == rhs.federateWebServerPort && 00085 testEnabled == rhs.testEnabled && 00086 testInProgress == rhs.testInProgress && 00087 continuousTest == rhs.continuousTest && 00088 numInitiatedTests == rhs.numInitiatedTests && 00089 numTestReports == rhs.numTestReports && 00090 isReconnecting == rhs.isReconnecting && 00091 isDisconnected == rhs.isDisconnected && 00092 isRegulating == rhs.isRegulating && 00093 isConstrained == rhs.isConstrained && lbtsString == rhs.lbtsString && 00094 lookAheadString == rhs.lookAheadString && timeString == rhs.timeString ); 00095 } 00096 bool operator!=(const DtFederateTimeStateInfo& rhs) const 00097 { 00098 return !(*this == rhs); 00099 } 00100 00101 unsigned long connId; 00102 MAKRti::DtString federateType; 00103 MAKRti::DtString federateName; 00104 MAKRti::DtString federateHostName; 00105 int federateHandle; 00106 MAKRti::DtInetAddr federateHost; 00107 DtHlaVersionId hlaVersion; 00108 MAKRti::DtInetAddr federateWebServerHost; 00109 int federateWebServerPort; 00110 00111 bool testEnabled; 00112 bool testInProgress; 00113 bool continuousTest; 00114 unsigned numInitiatedTests; 00115 unsigned numTestReports; 00116 00117 bool isReconnecting; 00118 bool isDisconnected; 00119 00120 bool isRegulating; 00121 bool isConstrained; 00122 00123 MAKRti::DtString lbtsString; 00124 MAKRti::DtString lookAheadString; 00125 MAKRti::DtString timeString; 00126 00127 bool heartbeated; 00128 }; 00129 00130 // Related typedefs 00131 typedef std::map< int, DtFederateTimeStateInfo > DtFederateStateByHandleMap; 00132 typedef std::pair< std::set< int >, std::set< int > > DtPendingAchievedPair; 00133 typedef std::map< MAKRti::DtString, DtPendingAchievedPair > DtSyncPtToAchievedFederatesMap; 00134 struct DtFederationStateInfo 00135 { 00136 DtFederationInfo federationInfo; 00137 DtFederateStateByHandleMap federates; 00138 DtSyncPtToAchievedFederatesMap syncPts; 00139 std::map< int, int > localFederates; // handles and component IDs 00140 bool heartbeated; 00141 }; 00142 typedef std::map< MAKRti::DtString, DtFederationStateInfo > DtFederationStateByNameMap; 00143 typedef std::map< int, MAKRti::DtString > DtFederationNameByHandleMap; 00144 00145 00146 #endif