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