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

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)