VR-Forces 4.10 Class Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
environmentSimDataProcessor.h
Go to the documentation of this file.
1 /******************************************************************************
2 ** Copyright (c) 2013 MAK Technologies, Inc.
3 ** All rights reserved.
4 ******************************************************************************/
5 
9 
10 #pragma once
11 
14 #include <vrfutil/rwUUID.h>
15 
19 
22 #include <vlutil/vlPerformanceStats.h>
23 
24 namespace makVrv
25 {
26  class DtSimEntryObjectAgent;
27 
28  namespace DT_PROTOCOL_NAMESPACE
29  {
30  class DtVrlinkEnvironmentalStateListenerInterface;
31  class DtEnvironmentalExistenceListener;
32  }
33 }
34 
36 class DtReflectedObject;
37 
38 namespace makVrf
39 {
40  class DtEnvironmentStateObjectAgent;
41 
42  namespace VRF_PROTOCOL_NAMESPACE
43  {
46  {
47  public:
48 
51 
54 
57  {
58  return dynamic_cast<DtEnvironmentSimDataProcessor*>(
59  sim.findInstance("DtEnvironmentSimDataProcessor"));
60  }
61 
64  {
65  sim.registerInstance("DtEnvironmentSimDataProcessor",proc);
66  }
67 
69  void postDrainInput();
70 
72  void setObjectUpdateRate(makVrv::DtUniqueID uniqueId, makVrv::DtSimEntryUpdater::UpdateRate rate);
73 
75  void forceObjectUpdate(makVrv::DtUniqueID uniqueId);
76 
79 
82 
85  DtEnvironmentStateObjectAgent& objectDriver, bool force = false);
87  DtVrlinkNetworkUpdateSimulatedEnvironmentProcess& state, const DtRwProperties& stateProperties, bool forceStatePropertyUpdate = false);
90 
91  virtual void postRemoteControllerInit();
92  virtual void cleanup();
93 
94  protected:
95 
96  static void postDrainInput(void* usr);
97 
98  virtual void slot_modelSetChanged();
99 
100  virtual void slot_postUpdateCallback(makVrv::DT_PROTOCOL_NAMESPACE::DtVrlinkEnvironmentalStateListenerInterface& listener);
101 
102 
104  virtual bool updateExtendedState(
106 
110 
111  static void uuidChangedCallback(DtReflectedObject* obj, const DtUUID& uuid, void* usr);
112  virtual void processUUIDChanged(DtReflectedObject* obj, const DtUUID& uuid);
113 
114  protected:
115 
116  //A Listener and a driver which will be updated with it.
118  {
119  public:
120 
122  DtEnvironmentStateObjectAgent& driver, DtEnvironmentSimDataProcessor& processor);
123 
125 
126  EnvironmentStateUpdater& operator=(const EnvironmentStateUpdater& orig);
127 
128  //Are the updaters equal
129  bool operator==(const EnvironmentStateUpdater& orig) const;
130 
132  void update(double timeT);
133 
134  protected:
135 
137  DtEnvironmentStateObjectAgent* myObjectAgent;
139  };
140 
141  typedef std::set<makVrv::DtUniqueID> EnvironmentIdList;
142 
144  {
146  DtEnvironmentStateObjectAgent* myAgent;
148  };
149 
150  typedef std::map<makVrv::DtUniqueID,EnvironmentSimDataInstance > EnvironmentAgentMap;
151 
153  typedef std::map<makVrv::DtSimEntryUpdater::UpdateRate,EnvironmentUpdaterGroup>
155 
156  protected:
157 
159 
162  DtTimedSection myTimer;
163  makVrv::DtSimEntryObjectAgent* mySimEntryAgent;
164 
168 
169  typedef boost::unordered_map<makVrv::DtUniqueID, DtVrlinkNetworkUpdateSimulatedEnvironmentProcess> StateMap;
171  std::map<makVrv::DtUniqueID, DtString> myExtendedLabels;
172 
173  struct BaseState
174  {
175  BaseState() : vrlEnvProc(), stateProps(0), count(0) {};
176  BaseState(int c) : vrlEnvProc(), stateProps(0), count(c) {};
177 
178 
181  int count;
182  };
183 
185  typedef std::map<std::string, BaseState > BaseStateMap;
187  std::map<makVrv::DtUniqueID, DtUUID> myUUIDMap;
190 
192  };
193 
195  {
196  public:
199 
201 
204  static void registerInstance(makVrv::DT_PROTOCOL_NAMESPACE::DtVrlinkConnection& conn,
206 
208  };
209  }
210 }
makVrv::DtSignalConnectionManager myConnections
Definition: environmentSimDataProcessor.h:158
UUID is a unique ID wrapper class.
Definition: rwUUID.h:222
Contains makVrv::DtSimDataProcessorInterface class.
StateMap myStateMap
Definition: environmentSimDataProcessor.h:170
Virtual base class.
Definition: DtVirtualBaseClass.h:19
#define VRF_PROTOCOL_EXPORT
Definition: vrfProtocol.h:24
makVrv::DT_PROTOCOL_NAMESPACE::DtVrlinkEnvironmentalStateListenerInterface * myListener
Definition: environmentSimDataProcessor.h:145
DtEnvironmentSimDataProcessor * myProcessor
Definition: environmentSimDataProcessor.h:138
makVrv::DT_PROTOCOL_NAMESPACE::DtVrlinkEnvironmentalStateListenerInterface * myListener
Definition: environmentSimDataProcessor.h:136
UpdateRate
Definition: DtSimEntryUpdater.h:31
std::map< makVrv::DtUniqueID, EnvironmentSimDataInstance > EnvironmentAgentMap
Definition: environmentSimDataProcessor.h:150
DT_DLL_VRFGUICORE bool operator==(const std::vector< makArchives::DtEnvironmentRecord::DtElevationalConfigurationRecord > &lhs, const std::vector< makArchives::DtEnvironmentRecord::DtElevationalConfigurationRecord > &rhs)
std::set< makVrv::DtUniqueID > EnvironmentIdList
Definition: environmentSimDataProcessor.h:141
std::map< makVrv::DtUniqueID, DtString > myExtendedLabels
Definition: environmentSimDataProcessor.h:171
bool myReportForceChanges
Definition: environmentSimDataProcessor.h:189
makVrv::DtBalancedUpdater< EnvironmentStateUpdater > EnvironmentUpdaterGroup
Definition: environmentSimDataProcessor.h:152
The protocol specific processor for Environment sim data.
Definition: environmentSimDataProcessor.h:45
virtual void registerInstance(const std::string &instanceName, DtVirtualBaseClass *instance)
Register an object as an instance of instanceName, and transfer memory ownership of the instance to t...
static DtEnvironmentSimDataProcessor * findInstance(makVrv::DT_PROTOCOL_NAMESPACE::DtVrlinkConnection &sim)
Definition: environmentSimDataProcessor.h:55
virtual DtVirtualBaseClass * findInstance(const std::string &instanceName)
Find an instance with the given name.
The main class for the remote control interface to VR-Forces.
Definition: vrfRemoteController.h:204
DtRwProperties * stateProps
Definition: environmentSimDataProcessor.h:180
std::map< makVrv::DtSimEntryUpdater::UpdateRate, EnvironmentUpdaterGroup > EnvironmentUpdateGroupMap
Definition: environmentSimDataProcessor.h:154
#define VRF_PROTOCOL_NAMESPACE
Definition: vrfDis.h:18
EnvironmentIdList myForceUpdateList
Definition: environmentSimDataProcessor.h:167
makVrv::DT_PROTOCOL_NAMESPACE::DtVrlinkConnection & mySimulation
Definition: environmentSimDataProcessor.h:160
makVrv::DtSimEntryObjectAgent * mySimEntryAgent
Definition: environmentSimDataProcessor.h:163
DtVrfRemoteController * myRemoteController
Definition: environmentSimDataProcessor.h:191
DtEnvironmentStateObjectAgent * myAgent
Definition: environmentSimDataProcessor.h:146
BaseStateMap myBaseStateMap
Definition: environmentSimDataProcessor.h:186
makVrv::DtSimEntryUpdater::UpdateRate myRate
Definition: environmentSimDataProcessor.h:147
boost::unordered_map< makVrv::DtUniqueID, DtVrlinkNetworkUpdateSimulatedEnvironmentProcess > StateMap
Definition: environmentSimDataProcessor.h:169
Class to manage disconnection of boost connections on deletion.
Definition: DtSignalConnectionManager.h:20
makVrv::DT_PROTOCOL_NAMESPACE::DtEnvironmentalExistenceListener & myListener
Definition: environmentSimDataProcessor.h:161
DtEnvironmentStateObjectAgent * myObjectAgent
Definition: environmentSimDataProcessor.h:137
DtBalanacedUpdater updates updatee classes at a desired rate in a fair (each instance gets the same n...
Definition: DtBalancedUpdater.h:26
unsigned long long DtUniqueID
Definition: DtUniqueID.h:19
Methods a data processor needs to implement to be considered a data processor.
Definition: DtSimDataProcessorInterface.h:24
EnvironmentUpdateGroupMap myRefreshRateGroups
Definition: environmentSimDataProcessor.h:166
#define DT_PROTOCOL_NAMESPACE
Make VR-Vantage VRLink code export with library #ifdef DL_DLL_IGCONVRLINK #undef DL_DLL_IGCONVRLINK #...
Definition: export.h:32
int count
Definition: environmentSimDataProcessor.h:181
Contains makVrv::DtSimEntryUpdater class.
Contains makVrv::DtBalancedUpdater class.
Base class to provide boost signal/slot management.
bool myReportUUIDChanges
Definition: environmentSimDataProcessor.h:188
DtTimedSection myTimer
Definition: environmentSimDataProcessor.h:162
The HLA 13 reflected entity list used by the driver to listen to reflected entities.
Definition: DtEnvironmentalExistenceListener.h:66
EnvironmentAgentMap myEnvironmentAgents
Definition: environmentSimDataProcessor.h:165
std::map< std::string, BaseState > BaseStateMap
Local map copy of aggregate states to prevent need of getting lock.
Definition: environmentSimDataProcessor.h:185
A list of properties.
Definition: rwProperties.h:126
BaseState()
Definition: environmentSimDataProcessor.h:175
static void registerInstance(makVrv::DT_PROTOCOL_NAMESPACE::DtVrlinkConnection &sim, DtEnvironmentSimDataProcessor *proc)
Definition: environmentSimDataProcessor.h:62
std::map< makVrv::DtUniqueID, DtUUID > myUUIDMap
Definition: environmentSimDataProcessor.h:187

Document ID: Generated on Tue Sep 21 17:42:52 EDT 2021 from SVN revision 234861
Copyright © 2005-2021 MAK Technologies. All Rights Reserved (www.mak.com)