![]() |
MAK RTIspy API Documentation for HLA 1.3
|
00001 /********************************************************************* 00002 ** Copyright (c) 2011 MaK Technologies, Inc. 00003 ** All rights reserved. 00004 *********************************************************************/ 00005 /********************************************************************* 00006 ** $RCSfile: networkCompInfoMgr.h,v $ $Revision: 1.16 $ $State: Exp $ 00007 *********************************************************************/ 00008 00009 #ifndef networkCompInfoMgr_H_ 00010 #define networkCompInfoMgr_H_ 00011 00014 00015 #include <map> 00016 #include <rtiMsConfig.h> 00017 #include <vlutil/vlFilename.h> 00018 #include <assistantConnectionInfo.h> 00019 #include "assistantMgr.h" 00020 00021 class DtRtiAssistantServer; 00022 class DtRtiAssistantPeer; 00023 class DtAssistantMsg; 00024 class DtAssistantPreferencesInfoMgr; 00025 class DtAssistantComponentMgr; 00026 class DtAssistantConnectionInfoMgr; 00027 class DtAssistantForwarderInfo; 00028 class DtAssistantStateObserveMsg; 00029 class DtAssistantForwarderStateMsg; 00030 class DtAssistantCommandMsg; 00031 class DtRtiConnectionAndConfiguration; 00032 00035 class DT_DLL_ASSISTANTAPP DtAssistantNetworkCompInfoMgr : public DtAssistantMgr 00036 { 00037 Q_OBJECT 00038 00039 public: 00040 00042 DtAssistantNetworkCompInfoMgr( DtBoost::shared_ptr<DtRtiAssistantServer> server, 00043 DtBoost::shared_ptr<DtRtiAssistantPeer> peer, 00044 DtBoost::shared_ptr<DtAssistantPreferencesInfoMgr> prefMgr, 00045 DtBoost::shared_ptr<DtAssistantComponentMgr> compMgr, 00046 DtBoost::shared_ptr<DtAssistantConnectionInfoMgr> connInfoMgr ); 00047 00049 ~DtAssistantNetworkCompInfoMgr(); 00050 00051 private: 00052 00054 DtAssistantNetworkCompInfoMgr(DtAssistantNetworkCompInfoMgr const& ); 00055 00057 DtAssistantNetworkCompInfoMgr& operator= (DtAssistantNetworkCompInfoMgr const& ); 00058 00059 public: 00060 00062 virtual void tick(); 00063 00066 virtual bool isLocalForwarder(const DtRtiConnectionInfo& conn) const; 00067 00070 virtual bool isRemoteForwarder(const DtRtiConnectionInfo& conn) const; 00071 00073 virtual void requestSingleUpdateFromConnectedForwarders(int id); 00074 00076 virtual void viewNetworkComponentsForConnection(const DtRtiConnectionInfo& conn); 00077 00079 virtual const DtAssistantForwarderInfo* forwarderInfo(const DtRtiConnectionInfo& conn) const; 00080 00083 00084 00085 static void processForwarderObserveMsg( const DtAssistantStateObserveMsg& msg, void* usr ); 00086 00088 virtual void processForwarderObserveMsg( const DtAssistantStateObserveMsg& msg ); 00089 00092 static void processForwarderStateMsgForConnection( 00093 const DtAssistantForwarderStateMsg& msg, void* usr ); 00094 00097 virtual void processForwarderStateMsgForConnection( 00098 const DtAssistantForwarderStateMsg& msg ); 00099 00100 // Process state message, handle RTI command requests if any. 00101 virtual void handleRtiCommands( const DtAssistantForwarderStateMsg& msg ); 00102 00104 static void processAssistantCommandMsg(const DtAssistantCommandMsg& msg, void* usr); 00105 00107 virtual void processAssistantCommandMsg(const DtAssistantCommandMsg& msg); 00109 00110 public slots: 00111 00113 void processConnectionsUpdate( const DtRtiConnectionAndConfiguration& conns ); 00114 00116 void processConnectionsRemoval( const DtRtiConnectionAndConfiguration& conns ); 00117 00119 void sendAllForwarderInfo(); 00120 00123 void sendObserveForwarderMsg(); 00124 00126 void federateRemovalTimeChanged( float val ); 00127 00128 signals: 00129 00131 void forwarderAdded(const DtRtiConnectionInfo& conn); 00132 00134 void forwarderConnUpdated(const DtRtiConnectionInfo& conn); 00135 00137 void forwarderUpdated(const DtRtiConnectionInfo& conn); 00138 00140 void forwarderRemoved(const DtRtiConnectionInfo& conn); 00141 00142 protected: 00143 00145 virtual void pruneTimedOutSingleUpdates(); 00146 00147 protected: 00148 00149 typedef std::map< DtRtiConnectionInfo, DtAssistantInfoSet > DtConnectionToObserversMap; 00150 typedef std::map< DtRtiConnectionInfo, DtAssistantForwarderInfo > DtForwarderStateByConnectionMap; 00151 00153 DtBoost::shared_ptr<DtAssistantComponentMgr> myCompMgr; 00154 00156 DtBoost::shared_ptr<DtAssistantConnectionInfoMgr> myConnInfoMgr; 00157 00159 DtRtiConnectionInfo myViewedRtiForwarder; 00160 00163 DtConnectionToObserversMap myRemotelyViewedRtiForwarders; 00164 00166 DtForwarderStateByConnectionMap myRemoteForwarders; 00167 00169 DtForwarderStateByConnectionMap myLocalForwarders; 00170 00172 MAKRti::DtClock myClock; 00173 00177 unsigned int myTimeStateUpdateInterval; 00178 00180 float myDefunctRemovalTime; 00181 00182 std::map<std::pair<int, MAKRti::DtTime>, std::map<int, MAKRti::DtString> > myRequestedRtiForwarderUpdates; 00183 00186 static const int theTimeToWaitForForwarderInfo; 00187 00188 }; 00189 00190 00191 #endif