MAK RTIspy API Documentation for HLA Evolved
execObserverForAssistant.h
Go to the documentation of this file.
00001 /*******************************************************************************
00002 ** Copyright (c) 2008 MaK Technologies, Inc.
00003 ** All rights reserved.
00004 *******************************************************************************/
00005 /*******************************************************************************
00006 ** $RCSfile: execObserverForAssistant.h,v $ $Revision: 1.11 $ $State: Exp $
00007 *******************************************************************************/
00008 
00009 
00012 
00013 #ifndef execObserverForAssistant_H_
00014 #define execObserverForAssistant_H_
00015 
00016 #include "execObserver.h"
00017 #include "execCmdProc.h"
00018 #include <rtiMsConfig.h>
00019 #include <vlutil/vlUtil.h>
00020 #include <vlutil/vlTime.h>
00021 #include <vlutil/vlInetAddr.h>
00022 #include <RIDparams.h>
00023 #include <testMgrStatusMsg.h>
00024 #include <latencyReportMsg.h>
00025 #include <federationInfo.h>
00026 #include <assistantConnectionInfo.h>
00027 #include <map>
00028 #include <vector>
00029 #include <list>
00030 
00031 class DtRtiMsg;
00032 class DtRtiAssistantExecClient;
00033 class DtAssistantPrinter;
00034 class DtBufferPrinter;
00035 class DtPrinterBuf;
00036 class DtAssistantLogEnableMsg;
00037 class DtAssistantNtfyLvlUpdateMsg;
00038 class DtAssistantExitMsg;
00039 class DtAssistantStateObserveMsg;
00040 class DtAssistantDeleteFederateMsg;
00041 class DtAssistantDeleteFederationMsg;
00042 class DtAssistantNetworkTestEnableMsg;
00043 class DtAssistantChangeLatencyTestModeMsg;
00044 class DtAssistantRidParamsMsg;
00045 class DtAssistantLogRequestMsg;
00046 class DtRtiConnectionInfo;
00047 class DtRtiConnectionConfigurationInfo;
00048 
00054 class DT_DLL_EXEC DtRtiexecObserverForAssistant : public DtRtiexecObserver
00055 {
00056 
00057 public:
00058    DtRtiexecObserverForAssistant();
00059    virtual ~DtRtiexecObserverForAssistant();
00060 
00062    virtual void initialize( DtRIDParameters* params,
00063       DtBoost::shared_ptr<DtRtiexecCmdProc> cmdProc );
00064 
00066    virtual void startObservation();
00067 
00069 
00070 
00071    static void tick( void* usr );
00073    virtual void tick();
00074 
00075    virtual void queryForConnectionInfo(DtRtiConnectionInfoDataPair& connInfo,
00076       DtRtiConnectionConfigurationInfo& config);
00077 
00080    virtual void setForwarderInfo( int forwarderPort,
00081       const MAKRti::DtInetAddr& forwarderToConnectTo );
00082 
00084    virtual void enableNotifications();
00085 
00087    virtual void disableNotifications();
00088 
00090    virtual void processFedExCreatedEvent( DtFedExec* exec );
00091 
00093    virtual void processFedExDestroyedEvent( DtFedExec* exec );
00094 
00096    virtual void processFederateJoinedEvent( DtFedExec* exec, DtFederate* federate );
00097 
00099    virtual void processFederateResignedEvent( DtFedExec* exec, DtFederate* federate );
00100 
00102    virtual void processSyncPtRegisteredEvent( DtFedExec* exec, DtSyncPt* pt );
00103 
00105    virtual void processFederationSynchronizedEvent( DtFedExec* exec, DtSyncPt* pt );
00106 
00108    virtual void processSyncPtAchievedEvent( DtFedExec* exec, DtFederate* federate, DtSyncPt* pt );
00109 
00111    virtual void processFederateDisconnectedEvent( DtFedExec* exec, DtFederate* federate );
00112 
00114    virtual void processFederateReconnectSucceededEvent( DtFedExec* exec, DtFederate* federate );
00115 
00117    virtual void processFederateReconnectFailedEvent( DtFedExec* exec, DtFederate* federate );
00118 
00120    virtual void processLogFileUpdatedEvent( const MAKRti::DtFilename& logFile );
00121 
00123    virtual void processWebServerUpdatedEvent( const MAKRti::DtInetAddr& webSpyIpAddr,
00124       int webSpyPort );
00125 
00127    static void processTimeStateEvent( const DtRtiExec& exec, void* usr );
00129    virtual void processTimeStateEvent( const DtRtiExec& exec );
00130 
00132 
00134 
00135 
00137    static void processLatencyTestStatusMsg( const DtRtiMsg& msg, void* usr );
00139    virtual void processLatencyTestStatusMsg( const DtTestMgrStatusMsg& msg );
00140 
00142    static void processLatencyTestResultsMsg( const DtRtiMsg& msg, void* usr );
00144    virtual void processLatencyTestResultsMsg( const DtLatencyReportMsg& msg );
00146 
00148 
00149 
00152    static void processExecObserveMsg( const DtAssistantStateObserveMsg& msg, 
00153       void* usr );
00156    virtual void processExecObserveMsg( const DtAssistantStateObserveMsg& msg );
00157 
00159    static void processDeleteFederateMsg( const DtAssistantDeleteFederateMsg& msg, 
00160       void* usr );
00162    virtual void processDeleteFederateMsg( const DtAssistantDeleteFederateMsg& msg );
00163 
00165    static void processDeleteFederationMsg( const DtAssistantDeleteFederationMsg& msg, 
00166       void* usr );
00168    virtual void processDeleteFederationMsg( const DtAssistantDeleteFederationMsg& msg );
00169 
00171    static void processEnableLoggingMsg( const DtAssistantLogEnableMsg& msg, void* usr );
00173    virtual void processEnableLoggingMsg( const DtAssistantLogEnableMsg& msg );
00174 
00176    static void processNotifyLevelChangeMsg( const DtAssistantNtfyLvlUpdateMsg& msg,
00177       void* usr );
00179    virtual void processNotifyLevelChangeMsg( const DtAssistantNtfyLvlUpdateMsg& msg );
00180 
00182    static void processNetworkTestingEnableMsg( const DtAssistantNetworkTestEnableMsg& msg, 
00183       void* usr );
00185    virtual void processNetworkTestingEnableMsg( const DtAssistantNetworkTestEnableMsg& msg );
00186 
00188    static void processLatencyTestCmndMsg( const DtAssistantChangeLatencyTestModeMsg& msg, 
00189       void* usr );
00191    virtual void processLatencyTestCmndMsg( const DtAssistantChangeLatencyTestModeMsg& msg );
00192 
00194    static void processRidParamRequestMsg( const DtAssistantRidParamsMsg& msg, 
00195       void* usr );
00197    virtual void processRidParamRequestMsg( const DtAssistantRidParamsMsg& msg );
00198 
00200    static void processLogRequestMsg( const DtAssistantLogRequestMsg& msg, 
00201       void* usr );
00203    virtual void processLogRequestMsg( const DtAssistantLogRequestMsg& msg );
00204 
00206    static void processExitCmndMsg( const DtAssistantExitMsg& msg, void* usr );
00208    virtual void processExitCmndMsg( const DtAssistantExitMsg& msg );
00209 
00211    static void processAssistantDisconnect( void* usr );
00213    virtual void processAssistantDisconnect();
00215 
00217    bool gotConnInfoFromAssistant();
00218 
00219 protected:
00220 
00222    virtual void addCallbacks();
00223 
00226    virtual void removeCallbacks();
00227 
00229    void fillFederateTimeStateInfo( DtAssistantFederateInfo& stateInfo,
00230       unsigned long connId, const MAKRti::DtString& fedType, const MAKRti::DtString& fedName,
00231       DtFederateHandle fedHandle, const MAKRti::DtString& fedHostName,
00232       const MAKRti::DtInetAddr& fedHost, DtHlaVersionId hlaVersion, const DtFedExec& fedExec,
00233       const MAKRti::DtInetAddr& fedWebServHost, int fedWebServPort );
00234 
00236    virtual void sendConnectionInfo( bool isConnected );
00237    
00238 protected:
00239 
00241    DtBoost::shared_ptr<DtRtiAssistantExecClient> myAssistantClient;
00242 
00244    DtAssistantPrinter* myAssistantPrinter;
00245 
00247    DtBufferPrinter* myBufferPrinter;
00248 
00250    DtBoost::shared_ptr<DtPrinterBuf> myPrinterBuffer;
00251 
00253    DtBoost::shared_ptr<DtRtiexecCmdProc> myCmdProc;
00254 
00256    bool myFedReconnectEnabled;
00257 
00259    bool myAllowNetworkTesting;
00260 
00262    DtFederationStateByNameMap myFederations;
00263 
00265    DtFederationNameByHandleMap myFederationNames;
00266 
00268    MAKRti::DtTime myMinTimeBetweenUpdates;
00269 
00271    bool myGotConnInfoFromAssistant;
00272 
00274    bool myExecIsObserved;
00275 
00277    DtRIDParameters* myParams;
00278 
00280 
00281    int myForwarderPort;
00282    MAKRti::DtInetAddr myForwarderToConnectTo;
00284 };
00285 
00286 inline bool DtRtiexecObserverForAssistant::gotConnInfoFromAssistant()
00287 {
00288    return myGotConnInfoFromAssistant;
00289 }
00290 
00291 #endif   //! execObserverForAssistant_H_
00292 
00293 

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)