MAK RTIspy API Documentation for HLA 1516
assistantConnectionInfo.h
Go to the documentation of this file.
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

Document ID: Generated on Thu Jun 14 14:15:04 EDT 2012 from SVN revision 116116
Copyright © 2005-2012 VT MÄK Inc. All Rights Reserved (www.mak.com)