![]() |
MAK RTIspy API Documentation for HLA Evolved
|
00001 /******************************************************************************* 00002 ** Copyright (c) 2009 MaK Technologies, Inc. 00003 ** All rights reserved. 00004 *******************************************************************************/ 00005 /******************************************************************************* 00006 ** $RCSfile: execObserverForWebService.h,v $ $Revision: 1.1 $ $State: Exp $ 00007 *******************************************************************************/ 00008 00011 00012 #ifndef execObserverForWebService_H_ 00013 #define execObserverForWebService_H_ 00014 00015 #include "rtiMsConfig.h" 00016 #include "execObserver.h" 00017 #include "execCmdProc.h" 00018 #include <RIDparams.h> 00019 #include <memory> 00020 00021 class DtWwwStateRspMsg; 00022 class DtWwwFederateStateRspMsg; 00023 class DtWwwControlRspMsg; 00024 class DtNetworkMapRspMsg; 00025 class DtRtiExecWebManager; 00026 00032 class DT_DLL_EXEC DtRtiexecObserverForWebService : public DtRtiexecObserver 00033 { 00034 public: 00035 DtRtiexecObserverForWebService( const DtRIDParameters* params, 00036 DtBoost::shared_ptr<DtRtiexecCmdProc> cmdProc ); 00037 virtual ~DtRtiexecObserverForWebService(); 00038 00040 virtual void startObservation(); 00041 00043 00044 00045 static void tick( void* usr ); 00047 virtual void tick(); 00048 00050 virtual void processFedExCreatedEvent( DtFedExec* exec ); 00051 00053 virtual void processFedExDestroyedEvent( DtFedExec* exec ); 00054 00056 virtual void processFederateJoinedEvent( DtFedExec* exec, DtFederate* federate ); 00057 00059 virtual void processFederateResignedEvent( DtFedExec* exec, DtFederate* federate ); 00060 00062 virtual void processSyncPtRegisteredEvent( DtFedExec* exec, DtSyncPt* pt ); 00063 00065 virtual void processFederationSynchronizedEvent( DtFedExec* exec, DtSyncPt* pt ); 00066 00068 virtual void processSyncPtAchievedEvent( DtFedExec* exec, DtFederate* federate, DtSyncPt* pt ); 00069 00071 static void processTimeStateEvent( const DtRtiExec& exec, void* usr ); 00073 virtual void processTimeStateEvent( const DtRtiExec& exec ); 00074 00076 00078 00079 00080 static void processStateRspMsg( const DtRtiMsg& msg, void* usr ); 00081 virtual void processStateRspMsg( const DtWwwStateRspMsg& msg ); 00082 00084 static void processFederateStateRspMsg( const DtRtiMsg& msg, void* usr ); 00085 virtual void processFederateStateRspMsg( const DtWwwFederateStateRspMsg& msg ); 00086 00088 static void processControlRspMsg( const DtRtiMsg& msg, void* usr ); 00089 virtual void processControlRspMsg( const DtWwwControlRspMsg& msg ); 00090 00092 static void processNetworkMapRespMsg( const DtRtiMsg& msg, void* usr ); 00093 virtual void processNetworkMapRespMsg( const DtNetworkMapRspMsg& msg ); 00095 00097 virtual void sendMsgToFederation( const DtString& federationName, std::auto_ptr<DtRtiMsg> msg ); 00098 00100 virtual void deleteFederate( const DtString& federationName, unsigned long federateHandle ); 00101 00103 virtual void destroyFederation( const DtString& federationName, unsigned long federationHandle ); 00104 00106 virtual void changeRidParam( const DtString& federationName, unsigned long federateHandle, 00107 const DtString& ridParameter, const DtString& ridValue ); 00108 00110 inline void setConnectionId( unsigned long connectionId ); 00111 00113 inline const DtRIDParameters& params() const; 00114 00115 protected: 00116 00118 virtual void addCallbacks(); 00119 00122 virtual void removeCallbacks(); 00123 00124 protected: 00125 00127 const DtRIDParameters* myParams; 00128 00130 std::auto_ptr<DtRtiExecWebManager> myWebManager; 00131 00133 DtBoost::shared_ptr<DtRtiexecCmdProc> myCmdProc; 00134 00136 DtClock myClock; 00137 00139 const DtTime myMinTimeBetweenUpdates; 00140 00142 unsigned long myConnectionId; 00143 }; 00144 00145 void DtRtiexecObserverForWebService::setConnectionId( unsigned long connectionId ) 00146 { 00147 myConnectionId = connectionId; 00148 } 00149 00150 const DtRIDParameters& DtRtiexecObserverForWebService::params() const 00151 { 00152 return *myParams; 00153 } 00154 00155 #endif //! execObserverForWebService_H_ 00156 00157