![]() |
MAK RTIspy API Documentation for HLA Evolved
|
00001 /********************************************************************* 00002 ** Copyright (c) 2009 MaK Technologies, Inc. 00003 ** All rights reserved. 00004 *********************************************************************/ 00005 /********************************************************************* 00006 ** $RCSfile: assistantConnectionAssocData.h,v $ $Revision: 1.2 $ $State: Exp $ 00007 *********************************************************************/ 00008 00009 #ifndef assistantConnectionAssocData_H_ 00010 #define assistantConnectionAssocData_H_ 00011 00014 00015 #include <rtiUtil.h> 00016 #include <vlutil/vlString.h> 00017 #include <vlutil/vlMutex.h> 00018 #include "assistantUtil.h" 00019 #include "assistantInfo.h" 00020 #include <hostNameAddress.h> 00021 00024 class DT_DLL_ASSISTANT DtRtiAssociatedConnectionData 00025 { 00026 00027 public: 00028 00029 enum DtConnectionState 00030 { 00031 // It is not known whether this connection is in use 00032 DtUnknownState, 00033 00034 // This connection conflicts with an active connection and can't be used 00035 DtConnectionConflicting, 00036 00037 // A forwarder is using this connection, but not an rtiexec 00038 DtConnectionForwarderVerified, 00039 00040 // Both a forwarder and rtiexec are using this connection, or this is a 00041 // lightweight connection that has recently been used 00042 DtConnectionVerified 00043 }; 00044 00046 DtRtiAssociatedConnectionData(); 00047 00049 virtual bool operator==(const DtRtiAssociatedConnectionData& other) const; 00050 00052 virtual bool operator!=(const DtRtiAssociatedConnectionData& other) const; 00053 00055 MAKRti::DtString name( bool withOwner = false ) const; 00056 00058 void setName( const MAKRti::DtString& connName ); 00059 00061 bool isNamed() const; 00062 00064 MAKRti::DtString ownerHost() const; 00065 void setOwnerHost( const MAKRti::DtString& host ); 00066 00068 DtConnectionState connectionState() const; 00069 void setConnectionState( DtConnectionState state ); 00070 00072 00073 bool isStateVerified() const; 00074 bool isStateForwarderVerified() const; 00075 bool isStateConflicting() const; 00076 bool isStateUnknown() const; 00078 bool isStateActive() const; 00080 bool isStateInactive() const; 00082 00084 MAKRti::DtString conflictReason() const; 00085 void setConflictReason( const MAKRti::DtString& reason ); 00086 00088 bool isSaved() const; 00089 void setIsSaved( bool saved ); 00090 00092 bool isChosen() const; 00093 void setIsChosen( bool chosen ); 00094 00096 bool isPredefined() const; 00097 void setIsPredefined( bool predefined ); 00098 00100 MAKRti::DtInetAddr optionalForwarderToConnectTo() const; 00101 void setOptionalForwarderToConnectTo( const MAKRti::DtInetAddr& forwarder ); 00102 00104 unsigned numLocalFederates() const; 00105 void addLocalFederate(int compId); 00106 void removeLocalFederate(int compId); 00107 void clearLocalFederates(); 00108 const std::set<int>& localFederates() const; 00109 00111 bool wasRtiexecRemotelyHeartbeated() const; 00112 void setWasRtiexecRemotelyHeartbeated( bool heartbeated ); 00113 00116 bool wasRemotelyHeartbeated() const; 00117 void setWasRemotelyHeartbeated( bool heartbeated ); 00118 00120 DtAssistantInfo rtiexecsAssistant() const; 00121 void setRtiexecsAssistant( const DtAssistantInfo& assistant ); 00122 00124 DtAssistantInfo forwardersAssistant() const; 00125 void setForwardersAssistant( const DtAssistantInfo& assistant ); 00126 00128 int rtiexecCompId() const; 00129 void setRtiexecCompId( int id ); 00130 00132 int forwarderCompId() const; 00133 void setForwarderCompId( int id ); 00134 00135 protected: 00136 00138 MAKRti::DtString myName; 00139 00141 MAKRti::DtString myOwnerHost; 00142 00146 DtConnectionState myConnectionState; 00147 00148 // The reason for the conflict. 00149 MAKRti::DtString myConflictReason; 00150 00152 bool myIsSaved; 00153 00155 bool myIsChosen; 00156 00158 bool myIsPredefined; 00159 00162 MAKRti::DtInetAddr myOptionalAdditionalForwarderToConnectTo; 00163 00165 std::set<int> myLocalFederates; 00166 00169 bool myRtiexecWasRemotelyHeartbeated; 00170 00173 bool myWasRemotelyHeartbeated; 00174 00176 DtAssistantInfo myRtiexecsAssistant; 00177 00179 DtAssistantInfo myForwardersAssistant; 00180 00182 int myRtiexecCompId; 00183 00185 int myForwarderCompId; 00186 }; 00187 00188 inline bool DtRtiAssociatedConnectionData::isStateVerified() const 00189 { 00190 return (myConnectionState == DtConnectionVerified); 00191 } 00192 00193 inline bool DtRtiAssociatedConnectionData::isStateForwarderVerified() const 00194 { 00195 return (myConnectionState == DtConnectionForwarderVerified); 00196 } 00197 00198 inline bool DtRtiAssociatedConnectionData::isStateConflicting() const 00199 { 00200 return (myConnectionState == DtConnectionConflicting); 00201 } 00202 00203 inline bool DtRtiAssociatedConnectionData::isStateUnknown() const 00204 { 00205 return (myConnectionState == DtUnknownState); 00206 } 00207 00208 inline bool DtRtiAssociatedConnectionData::isStateActive() const 00209 { 00210 return (myConnectionState == DtConnectionVerified || 00211 myConnectionState == DtConnectionForwarderVerified); 00212 } 00213 00214 inline bool DtRtiAssociatedConnectionData::isStateInactive() const 00215 { 00216 return (myConnectionState == DtConnectionConflicting || 00217 myConnectionState == DtUnknownState); 00218 } 00219 00220 00221 #endif