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

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)