WebLVC 1.8 API Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
timeMgmtTrans.h
Go to the documentation of this file.
1 /****************************************************************************
2  * Copyright (c) 2015 MAK Technologies, Inc.
3  * All rights reserved.
4  ****************************************************************************/
5 
9 
10 #pragma once
11 
12 #include "pTimeMgmtObj.h"
13 
15 #include "pTimeMgmtObj.h"
16 
17 #include <vl/rtiCompatibility.h>
18 
19 #ifdef DtHLA_1516_EVOLVED
20 #include <RTI/LogicalTime.h>
21 #elif defined DtHLA_1516
22 #include <RTI/LogicalTime.h>
23 #else // HLA 1.3
24 #include <fedtime.hh>
25 #endif
26 
27 namespace MAKVrExchange
28 {
29  namespace DtRprBroker
30  {
31  class DtRprBroker;
32  }
33 }
34 
38  : public MAKVrExchange::DtBaseObjectTranslator<DtPortalTimeMgmtObject,
39  DtPortalReflectedTimeMgmtObject>
40 {
41 public:
42 
44  Dt_DEF_TRANSLATOR_NAME( "Time Management" );
45 
48 
51 
55  virtual void enableReflectTranslator( bool enabled );
56 
57  virtual void tick();
58 
60  virtual unsigned int numObjects() const { return 1; }
61 
64 
65  static void processTimeGrant(
66 #if DtHLA_1516
67  const RTI::LogicalTime& fedTime,
68 #else
69  const RTI::FedTime& fedTime,
70 #endif
71  void* usr );
72 
73  void processTimeGrant(
74 #if DtHLA_1516
75  const RTI::LogicalTime& fedTime );
76 #else
77  const RTI::FedTime& fedTime );
78 #endif
79 
81 
84 
85  static void processTimeRegulating(
86 #if DtHLA_1516
87  const RTI::LogicalTime& fedTime,
88 #else
89  const RTI::FedTime& fedTime,
90 #endif
91  void* usr );
92 
94 #if DtHLA_1516
95  const RTI::LogicalTime& fedTime );
96 #else
97  const RTI::FedTime& fedTime );
98 #endif
99 
101 
104 
105  static void processTimeConstrained(
106 #if DtHLA_1516
107  const RTI::LogicalTime& fedTime,
108 #else
109  const RTI::FedTime& fedTime,
110 #endif
111  void* usr );
112 
114 #if DtHLA_1516
115  const RTI::LogicalTime& fedTime );
116 #else
117  const RTI::FedTime& fedTime );
118 #endif
119 
121 
122 protected:
123 
125  virtual void advanceTime();
126 
127  static bool portalDiscoveryCriteria(
128  const MAKVrExchange::DtPortalReflectedObject* reflectedObject, void* usr );
129  static void portalAdditionCallback( const DtPortalReflectedTimeMgmtObject& object,
130  void* usr );
131  static void portalUpdateCallback( const DtPortalReflectedTimeMgmtObject& object,
132  void* usr );
133  static void portalRemovalCallback( const DtPortalReflectedTimeMgmtObject& object,
134  void* usr );
135 
136  virtual void discoverPortalObject( const DtPortalReflectedTimeMgmtObject& object );
137  virtual void receivePortalUpdate( const DtPortalReflectedTimeMgmtObject& object );
138  virtual void createPortalPublisher( MAKVrExchange::DtBrokerObject* brokerObj );
139  virtual void removePortalObject( const DtPortalReflectedTimeMgmtObject& object );
140  virtual void createHlaPublisher( MAKVrExchange::DtBrokerObject* brokerObj );
141  virtual void deletePortalPublisher( MAKVrExchange::DtBrokerObject* brokerObj );
142  virtual void deleteHlaPublisher( MAKVrExchange::DtBrokerObject* brokerObj );
143  virtual bool isPortalPublishable( const MAKVrExchange::DtBrokerObject* brokerObj ) const;
144 
145  virtual bool isHlaPublishable( const MAKVrExchange::DtBrokerObject* brokerObj,
146  const DtPortalReflectedTimeMgmtObject* refObj ) const;
147 
148 private:
149 
152 
155 
156 protected:
157 
159 
161 
163 
165  double myLookahead;
166 
169 
172 
175 
178 
180  std::map<DtString,double> myLbtsValues;
181 
184 
185 };
virtual bool isPortalPublishable(const MAKVrExchange::DtBrokerObject *brokerObj) const
std::map< DtString, double > myLbtsValues
Map of time management info ID&#39;s to LBTS values for each broker.
Definition: timeMgmtTrans.h:180
DtPortalTimeMgmtObjectPublisher * myPortalPublisher
Definition: timeMgmtTrans.h:162
bool myIsTimeRegulating
Whether time regulation has yet been enabled.
Definition: timeMgmtTrans.h:174
Provides container to hold pointers to Protocol/Portal objects.
Definition: brokerObject.h:24
static void portalUpdateCallback(const DtPortalReflectedTimeMgmtObject &object, void *usr)
virtual void receivePortalUpdate(const DtPortalReflectedTimeMgmtObject &object)
virtual void enableReflectTranslator(bool enabled)
enables or disables this translator.
static bool portalDiscoveryCriteria(const MAKVrExchange::DtPortalReflectedObject *reflectedObject, void *usr)
virtual void removePortalObject(const DtPortalReflectedTimeMgmtObject &object)
DtTimeManagementTranslator(MAKVrExchange::DtBroker *broker)
CTOR.
Implements a DtBroker for the HLA Protocol.
Definition: rprBroker.h:36
double myCurrentLbts
The current LBTS/GALT of this broker.
Definition: timeMgmtTrans.h:168
A simple template class to hold different types of State Repositories.
Definition: pObjectPublisher.h:68
DtPortalReflectedTimeMgmtObjectManager * myPortalReflectedList
Definition: timeMgmtTrans.h:160
An abstract interface for reflected objects.
Definition: pReflectedObject.h:31
DtBroker * broker() const
Broker Accessor.
Definition: translator.h:80
Contains the DtPortalTimeMgmtObject class declaration.
MAKVrExchange::DtRprBroker::DtRprBroker * myRprBroker
Definition: timeMgmtTrans.h:158
static void processTimeRegulating(const RTI::FedTime &fedTime, void *usr)
Handles becoming time regulating.
static void processTimeGrant(const RTI::FedTime &fedTime, void *usr)
Handles time grants.
Provides time synchronization between HLA brokers.
Definition: timeMgmtTrans.h:37
virtual void tick()
Needs to be implemented for every translator, this is called every frame to allow the translator to d...
virtual void createPortalPublisher(MAKVrExchange::DtBrokerObject *brokerObj)
static void processTimeConstrained(const RTI::FedTime &fedTime, void *usr)
Handles becoming time constrained.
double myLookahead
The lookahead value for time regulation.
Definition: timeMgmtTrans.h:165
Base class for all broker objects.
Definition: broker.h:58
DtBaseObjectTranslators provide common logic for translating objects.
Definition: baseObjectTranslator.h:106
virtual void discoverPortalObject(const DtPortalReflectedTimeMgmtObject &object)
A template to create reflected object types for each type of object message.
Definition: pReflectedObject.h:58
Contains the DtObjectTranslator and DtBaseObjectTranslator class declarations.
virtual ~DtTimeManagementTranslator()
Virtual DTOR.
static void portalAdditionCallback(const DtPortalReflectedTimeMgmtObject &object, void *usr)
DtTimeManagementTranslator & operator=(const DtTimeManagementTranslator &original)
Assignment operator not implemented.
virtual bool isHlaPublishable(const MAKVrExchange::DtBrokerObject *brokerObj, const DtPortalReflectedTimeMgmtObject *refObj) const
virtual void createHlaPublisher(MAKVrExchange::DtBrokerObject *brokerObj)
virtual void deleteHlaPublisher(MAKVrExchange::DtBrokerObject *brokerObj)
virtual void deletePortalPublisher(MAKVrExchange::DtBrokerObject *brokerObj)
bool myRequestTime
Indicates that a time advance should be requested.
Definition: timeMgmtTrans.h:183
virtual unsigned int numObjects() const
Returns the current number of objects. Which is always 1 in this case - the TimeMgmtObject.
Definition: timeMgmtTrans.h:60
static void portalRemovalCallback(const DtPortalReflectedTimeMgmtObject &object, void *usr)
double myCurrentTime
The current logical time of this broker.
Definition: timeMgmtTrans.h:171
Dt_DEF_TRANSLATOR_NAME("Time Management")
Static translatorName method returns the translator name.
virtual void advanceTime()
Requests a time advance.
bool myIsTimeConstrained
Whether time constrained has yet been enabled.
Definition: timeMgmtTrans.h:177

Document ID: Generated on Wed Mar 12 15:05:17 EDT 2025 from SVN revision 274272
Copyright © 2005-2025 MAK Technologies. All Rights Reserved (www.mak.com)