MAK RTIspy API Documentation for HLA 1.3
lanForwarderPort.h
Go to the documentation of this file.
00001 /*******************************************************************************
00002  ** Copyright (c) 2006 MaK Technologies, Inc.
00003  ** All rights reserved.
00004  *******************************************************************************/
00005 /*******************************************************************************
00006  ** $RCSfile: lanForwarderPort.h,v $ $Revision: 1.7 $ $State: Exp $
00007  *******************************************************************************/
00010 
00011 #ifndef DtLanForwarderPort_H_
00012 #define DtLanForwarderPort_H_
00013 
00014 #include "forwarderPort.h"
00015 #include "rtiMsConfig.h"
00016 #include <map>
00017 #include <vector>
00018 
00019 class DtRIDParameters;
00020 class DtRouteMap;
00021 class DtExtendedRtiMsgForwarder;
00022 class DtFederateTrackingFilter;
00023 
00028 class DT_DLL_FORWARDER DtLanForwarderPort : public DtForwarderPort
00029 {
00030 protected:
00031 
00033    DtLanForwarderPort( const DtRIDParameters* params,
00034       DtBoost::shared_ptr<DtRouteMap> routes,
00035       const MAKRti::DtInetAddr& host,
00036       int forwarderPort,
00037       const MAKRti::DtInetAddr& forwardertoConnectTo );
00038 
00039 public:
00040    
00041    virtual ~DtLanForwarderPort();
00042    
00044    virtual bool isReady() const;
00045 
00047    virtual DtAddressMsgPair getNextMsg();
00048 
00050    virtual void sendByTransport( const DtForwarderMsg& msg ) const;
00051 
00053    virtual void sendToAllReliable( const DtForwarderMsg& msg ) const;
00054 
00057    virtual void sendToListReliable( const DtForwarderMsg& msg,
00058       const DtAddressPortList& destinations ) const;
00059 
00061    virtual inline bool flush();
00062 
00067    virtual void setForwarderId(unsigned long id);
00068 
00070    virtual void selectParams( MAKRti::DtSelectParamWithWrite& selectParams );
00071 
00073    virtual void updateRoutes();
00074    
00077    virtual int checkConnectionStatus( const DtInetAddrAndPort* target = 0 );
00078 
00082    virtual void clearNeededConnections();
00083 
00086    virtual unsigned int abortPendingConnections();
00087 
00090    unsigned int pendingConnectionsAborted();
00091 
00093    virtual DtAddressPortList connections() const;
00094 
00096    virtual void listenToMulticastGroup( const MAKRti::DtInetAddr& mcastAddr );
00097    virtual void dropMulticastGroup( const MAKRti::DtInetAddr& mcastAddr );
00098    
00100    virtual bool updateFederateConnectionId( unsigned long orig, 
00101                                             unsigned long final );
00102 
00104    virtual const DtFederateTrackingFilter* fedTrackingFilter() const;
00105 
00106    virtual bool populateConnectionInformation(
00107       unsigned int& numForwarderClientConns,
00108       unsigned int& numForwarderExecConns,
00109       std::vector<MAKRti::DtString>& clientConnectionHostNames,
00110       std::vector<MAKRti::DtInetAddr>& clientConnectionAddrs) const;
00111 
00112 public:
00113    
00115    static DtForwarderPort* create( const DtRIDParameters* params,
00116       const DtBoost::shared_ptr<DtRouteMap> routes,
00117       const MAKRti::DtInetAddr& host,
00118       int forwarderPort,
00119       const MAKRti::DtInetAddr& forwardertoConnectTo );
00120    
00124    static void setCreatorFunction( DtForwarderPortCreatorFcn creator );
00125    
00126 protected:   
00127 
00129    DtLanForwarderPort();
00130    DtLanForwarderPort( const DtLanForwarderPort& orig );
00131    DtLanForwarderPort& operator=( const DtLanForwarderPort& orig );
00132 
00133    
00134 protected:
00135 
00136    const DtRIDParameters*      myParams;
00137    DtExtendedRtiMsgForwarder*  myForwarder;
00138    bool                        myIsReady;
00139 
00140 protected:
00141 
00142    static DtForwarderPortCreatorFcn theCreator;
00143    
00144 };
00145 
00146 #endif //! DtLanForwarderPort_H_
00147 

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)