![]() |
MAK RTIspy API Documentation for HLA 1516
|
00001 /********************************************************************* 00002 ** Copyright (c) 2008 MaK Technologies, Inc. 00003 ** All rights reserved. 00004 *********************************************************************/ 00005 /********************************************************************* 00006 ** $RCSfile: assistantConnectionInfo.h,v $ $Revision: 1.35 $ $State: Exp $ 00007 *********************************************************************/ 00008 00009 #ifndef assistantConnectionInfo_H_ 00010 #define assistantConnectionInfo_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 "assistantConnectionAssocData.h" 00021 #include <hostNameAddress.h> 00022 00023 class DtRtiConnectionInfo; 00024 00026 typedef std::map<DtRtiConnectionInfo,DtRtiAssociatedConnectionData> DtRtiConnectionInfoDataMap; 00027 00029 typedef std::pair<DtRtiConnectionInfo,DtRtiAssociatedConnectionData> DtRtiConnectionInfoDataPair; 00030 00032 DT_DLL_ASSISTANT MAKRti::DtString DtAssistantConnNameForDisplay( const DtRtiConnectionInfoDataPair& conn, 00033 bool withOwner, bool withInterface ); 00034 00036 class DT_DLL_ASSISTANT DtRtiConnectionInfo 00037 { 00038 public: 00039 00041 DtRtiConnectionInfo(); 00042 00044 DtRtiConnectionInfo( const MAKRti::DtString& hostname, int udpPort, 00045 int tcpPort, const MAKRti::DtInetAddr& bestEffortAddress, 00046 const MAKRti::DtInetAddr& interfaceAddr, int forwarderPort ); 00047 DtRtiConnectionInfo( const MAKRti::DtInetAddr& reliableAddress, 00048 int udpPort, int tcpPort, const MAKRti::DtInetAddr& bestEffortAddress, 00049 const MAKRti::DtInetAddr& interfaceAddr, int forwarderPort ); 00050 00052 DtRtiConnectionInfo( const MAKRti::DtInetAddr& bestEffortAddress, int port, 00053 const MAKRti::DtInetAddr& interfaceAddr ); 00054 00056 DtRtiConnectionInfo( const DtHostNameAddress& host, int udpPort, 00057 int tcpPort, const MAKRti::DtInetAddr& bestEffortAddress, 00058 bool useRtiexec, const MAKRti::DtInetAddr& interfaceAddr, 00059 int forwarderPort ); 00060 00062 virtual ~DtRtiConnectionInfo(); 00063 00071 virtual bool operator<(const DtRtiConnectionInfo& other) const; 00072 00074 virtual bool operator==(const DtRtiConnectionInfo& other) const; 00075 00077 virtual bool operator!=(const DtRtiConnectionInfo& other) const; 00078 00081 virtual DtRtiConnectionInfo& operator=(const DtRtiConnectionInfo& other); 00082 00085 virtual bool isEquivalentHost( const DtRtiConnectionInfo& other ) const; 00086 00089 virtual bool isEquivalentHostAllInterfaces(const DtRtiConnectionInfo& other) const; 00090 00093 virtual bool isLocalHost() const; 00094 00097 virtual bool conflictsWith( const DtRtiConnectionInfo& other, 00098 MAKRti::DtString& reason ) const; 00099 00101 virtual MAKRti::DtString defaultName() const; 00102 00104 virtual MAKRti::DtString description() const; 00105 00107 virtual const MAKRti::DtInetAddr& reliableIp() const; 00108 00110 virtual void setReliableIp( const MAKRti::DtInetAddr& ip ); 00111 00113 virtual const MAKRti::DtInetAddr& bestEffortIp() const; 00114 00116 virtual void setBestEffortIp( const MAKRti::DtInetAddr& ip ); 00117 00119 virtual int udpPort() const; 00120 00122 virtual void setUdpPort( int port ); 00123 00125 virtual int tcpPort() const; 00126 00128 virtual void setTcpPort( int port ); 00129 00131 virtual MAKRti::DtString hostName() const; 00132 00134 virtual void setHostName( const MAKRti::DtString& host ); 00135 00137 virtual const MAKRti::DtInetAddr& networkInterfaceAddr() const; 00138 00140 virtual void setNetworkInterfaceAddr( const MAKRti::DtInetAddr& addr ); 00141 00143 virtual bool useRtiexec() const; 00144 00146 virtual void setUseRtiexec( bool useExec ); 00147 00149 virtual int forwarderPort() const; 00150 00152 virtual void setForwarderPort( int port ); 00153 00155 virtual bool isValid() const; 00156 00157 public: 00158 00160 static const DtRtiConnectionInfo& invalidConn(); 00161 00165 static void setLocalIpAddresses( bool reset = false ); 00166 00168 static const std::set< MAKRti::DtInetAddr >& localIpAddresses(); 00169 00171 static bool localSupportsIPv4(bool reset = false); 00172 00174 static bool localSupportsIPv6(bool reset = false); 00175 00177 static MAKRti::DtString constructConnName( const DtHostNameAddress& hostname, 00178 int udpPort, int tcpPort, const MAKRti::DtInetAddr& bestEffortAddress, 00179 bool useRtiexec, const MAKRti::DtInetAddr& interfaceAddr, 00180 int forwarderPort ); 00181 00183 static MAKRti::DtString constructConnDescription( const DtHostNameAddress& hostname, 00184 int udpPort, int tcpPort, const MAKRti::DtInetAddr& bestEffortAddress, 00185 bool useRtiexec, const MAKRti::DtInetAddr& interfaceAddr, 00186 int forwarderPort ); 00187 00189 00190 static const MAKRti::DtInetAddr& defaultReliableIp(); 00191 static const MAKRti::DtInetAddr& defaultBestEffortIp(); 00192 static int defaultLightweightPort(); 00193 static int defaultRtiexecPort(); 00194 static const MAKRti::DtString& defaultHostName(); 00195 static const MAKRti::DtInetAddr& defaultNetworkInterfaceAddr(); 00196 static int defaultForwarderPort(); 00198 00199 protected: 00200 00202 MAKRti::DtInetAddr myBestEffortIp; 00203 00205 int myUdpPort; 00206 00208 int myTcpPort; 00209 00211 DtHostNameAddress myHostNameAddress; 00212 00214 MAKRti::DtInetAddr myNetworkInterfaceAddr; 00215 00217 bool myUseRtiexec; 00218 00220 int myForwarderPort; 00221 00228 static std::set< MAKRti::DtInetAddr > &theLocalIpAddresses(); 00229 00230 00231 }; 00232 00233 inline const std::set< MAKRti::DtInetAddr >& DtRtiConnectionInfo::localIpAddresses() 00234 { 00235 return theLocalIpAddresses(); 00236 } 00237 00238 00239 00240 00241 #endif