![]() |
MAK RTIspy API Documentation for HLA 1.3
|
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