VR-Forces 4.0.4 Class Documentation
include/vrfcore/hlaExClock.h
Go to the documentation of this file.
00001 /*******************************************************************************
00002 ** Copyright (c) 2011 MAK Technologies, Inc.
00003 ** All rights reserved.
00004 *******************************************************************************/
00005 
00008 
00014 
00015 #ifndef hlaExClock_H_
00016 #define hlaExClock_H_
00017 
00018 #if DtHLA
00019 
00020 #include "vrfcore/exClock.h"
00021 #include "vrfcore/timer.h"
00022 
00023 #if !DtHLA_1516
00024 #include "fedtime.hh"
00025 #else
00026 #if DtHLA_1516_EVOLVED
00027 #include "RTI/LogicalTime.h"
00028 #include "RTI/LogicalTimeInterval.h"
00029 namespace RTI=rti1516e;
00030 #else
00031 #include "RTI/LogicalTime.h"
00032 #include "RTI/logicalTimeImpl.h"
00033 #include "RTI/logicalTimeIntervalImpl.h"
00034 namespace RTI=rti1516;
00035 #endif
00036 #endif
00037 
00038 class DtExerciseConn;
00039 class DtHlaTimeManagementControl;
00040 
00044 class DT_DLL_vrfcore DtHlaExerciseClock : public DtExerciseClock
00045 {
00046 public:
00047 
00049    DtHlaExerciseClock(DtSimManager *simManager, DtExerciseConn* exerciseConn);
00050 
00052    virtual ~DtHlaExerciseClock();
00053 
00054    virtual void init();
00055 
00058    virtual void tick();
00059 
00061    virtual DtTime fedTime() const;
00062 
00063    virtual DtTime lookahead() const;
00064 
00069    virtual DtTime effectiveSimTime() const;
00070 
00074    virtual void setInitialSimTime(DtTime time);
00075 
00078    virtual bool enableTimeManagementMode(DtTime lookaheadInterval);
00079    virtual bool disableTimeManagementMode();
00080    virtual bool isInTimeManagementMode() const;
00081 
00084    static void timeAdvanceGrantedCb(DtHlaTimeManagementControl* tmControl, 
00085       void* usr);
00086 
00087 protected:
00088 
00091    virtual bool startRegulatingTime(DtTime lookaheadInterval);
00092    virtual bool stopRegulatingTime();
00093    virtual bool isTimeRegulating() const;
00094 
00096    virtual bool enableTimeConstrainedMode();
00097    virtual bool disableTimeConstrainedMode();
00098    virtual bool isTimeConstrained() const;
00099 
00101 #if !DtHLA_1516
00102    virtual RTI::FedTime* createFederationTime(DtTime time = 0.0) const; 
00103 #else
00104    virtual RTI::LogicalTime* createFederationTime(DtTime time = 0.0) const;
00105 #endif
00106 
00108 #if !DtHLA_1516
00109    virtual RTI::FedTime* createFederationTimeInterval(DtTime time = 0.0) const; 
00110 #else
00111    virtual RTI::LogicalTimeInterval* createFederationTimeInterval(DtTime time = 0.0) const;
00112 #endif
00113 
00116    virtual DtHlaTimeManagementControl* createTimeManagementControl() const;
00117 
00120    virtual void processTimeAdvanceGrantedCb(DtHlaTimeManagementControl* tmControl);
00121 
00124    virtual void processSetTimeMultiplier(const DtIfSetTimeMultiplier& 
00125       timeMultiplerData);
00126 
00127 private:
00128 
00130    DtHlaExerciseClock(const DtHlaExerciseClock& orig);
00131 
00133    DtHlaExerciseClock& operator=(const DtHlaExerciseClock& orig);
00134 
00135 protected:
00136 
00137    DtExerciseConn* myExerciseConn;
00138 
00139    DtHlaTimeManagementControl* myTimeManagementControl;
00140 
00143 #if !DtHLA_1516
00144    RTI::FedTime* myInitialFederationTime; 
00145 #else
00146    RTI::LogicalTime* myInitialFederationTime; 
00147 #endif
00148 
00149    DtTime myInitialSimTime;
00150 
00151 #if !DtHLA_1516
00152    RTI::FedTime* myFederationTime; 
00153    RTI::FedTime* myEffectiveFederationTime; 
00154 #else
00155    RTI::LogicalTime* myFederationTime; 
00156    RTI::LogicalTime* myEffectiveFederationTime; 
00157 #endif
00158 
00159 #if !DtHLA_1516
00160    RTI::FedTime* myLookahead; 
00161 #else
00162    RTI::LogicalTimeInterval* myLookahead; 
00163    DtTime myVrlLookahead;
00164 #endif
00165 };
00166 
00167 #endif //! #if DtHLA
00168 
00169 #endif

Document ID: Generated on Fri Jun 29 16:33:32 EDT 2012 from SVN revision 116588
Copyright © 2005-2012 VT MÄK Inc. All Rights Reserved (www.mak.com)