VR-Forces 5.0.1 Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
orbatSimDataProcessor.h
Go to the documentation of this file.
1 /*******************************************************************************
2 ** Copyright (c) 2014 MAK Technologies, Inc.
3 ** All rights reserved.
4 *******************************************************************************/
5 
9 
10 #pragma once
11 
13 
14 #include <vrfGuiCore/orbatState.h>
19 
20 #include <vlutil/vlPerformanceStats.h>
21 
23 class DtRwOrbatData;
24 
25 namespace makVrv
26 {
27  class DtSimEntryObjectAgent;
28  class DtEntityStateListener;
29 
31  {
32  class DtVrlinkConnection;
37  }
38 }
39 
40 namespace makVrf
41 {
42  class DtOrbatStateObjectAgent;
43 
44  namespace VRF_PROTOCOL_NAMESPACE
45  {
46  class DtOrbatStateListenerInterface;
47 
50  {
51  public:
54 
57 
60  DtVrfRemoteController* remote);
61 
63  virtual ~DtOrbatSimDataProcessor();
64 
66  virtual void postDrainInput();
67 
69  virtual void setObjectUpdateRate(makVrv::DtUniqueID uniqueId, makVrv::DtSimEntryUpdater::UpdateRate rate);
70 
72  virtual void forceObjectUpdate(makVrv::DtUniqueID uniqueId);
73 
75  virtual void aggregateDiscovered(makVrv::DT_PROTOCOL_NAMESPACE::DtVrlinkAggregateStateListener& listener);
76 
78  virtual void aggregateToBeDeleted(makVrv::DT_PROTOCOL_NAMESPACE::DtVrlinkAggregateStateListener& listener);
79 
81  virtual void entityDiscovered(makVrv::DT_PROTOCOL_NAMESPACE::DtVrlinkEntityStateListener& listener);
82 
84  virtual void entityToBeDeleted(makVrv::DT_PROTOCOL_NAMESPACE::DtVrlinkEntityStateListener& listener);
85 
87  virtual void addOrbatListener(DtOrbatStateListenerInterface& listener);
88 
90  virtual void removeOrbatListener(DtOrbatStateListenerInterface& listener);
91 
93  virtual void createAndSendState(DtOrbatStateListenerInterface& listener,
94  DtOrbatStateObjectAgent& objectDriver);
95  virtual bool setState(DtOrbatStateListenerInterface& listener, DtOrbatState& state);
96 
97  protected:
98 
99  static void postDrainInput(void* usr);
100 
101  virtual void slot_postAggregateUpdateCallback(makVrv::DT_PROTOCOL_NAMESPACE::DtVrlinkAggregateStateListener&);
102  virtual void slot_postEntityUpdateCallback(makVrv::DtEntityStateListener&);
103 
104  protected:
105 
106  //A Listener and a driver which will be updated with it.
108  {
109  public:
110 
112  DtOrbatStateObjectAgent& driver, DtOrbatSimDataProcessor& processor);
113 
115 
116  OrbatStateUpdater& operator=(const OrbatStateUpdater& orig);
117 
118  //Are the updaters equal
119  bool operator==(const OrbatStateUpdater& orig) const;
120 
122  void update(double timeT);
123 
124  protected:
125 
127  DtOrbatStateObjectAgent* myObjectAgent;
129  };
130 
131  typedef std::set<makVrv::DtUniqueID> OrbatIdList;
132 
134  {
136  DtOrbatStateObjectAgent* myAgent;
138  };
139 
140  typedef std::map<makVrv::DtUniqueID,OrbatSimDataInstance > OrbatAgentMap;
141 
143  typedef std::map<makVrv::DtSimEntryUpdater::UpdateRate,OrbatUpdaterGroup>
145 
146  protected:
148 
153  makVrv::DtSimEntryObjectAgent* mySimEntryAgent;
154 
159  };
160 
162  {
163  public:
166 
168 
171  static void registerInstance(makVrv::DT_PROTOCOL_NAMESPACE::DtVrlinkConnection& conn,
173 
175  };
176  }
177 }
DtTimedSection myTimer
Definition: orbatSimDataProcessor.h:152
Contains makVrv::DtSimDataProcessorInterface class.
Virtual base class. Allows for RTTI and proper virtual destruction. Used by Creators, Factories, Providers, Assemblers and User Interfaces.
Definition: DtVirtualBaseClass.h:19
#define VRF_PROTOCOL_EXPORT
Definition: vrfProtocol.h:24
DtOrbatStateObjectAgent * myAgent
Definition: orbatSimDataProcessor.h:136
DtOrbatStateListenerInterface * myListener
Definition: orbatSimDataProcessor.h:126
UpdateRate
Definition: DtSimEntryUpdater.h:31
DT_DLL_VRFGUICORE bool operator==(const std::vector< makArchives::DtEnvironmentRecord::DtElevationalConfigurationRecord > &lhs, const std::vector< makArchives::DtEnvironmentRecord::DtElevationalConfigurationRecord > &rhs)
makVrv::DtSimEntryObjectAgent * mySimEntryAgent
Definition: orbatSimDataProcessor.h:153
makVrv::DT_PROTOCOL_NAMESPACE::DtEntityElementProcessor & myEntityListener
Definition: orbatSimDataProcessor.h:151
OrbatUpdateGroupMap myRefreshRateGroups
Definition: orbatSimDataProcessor.h:156
makVrv::DT_PROTOCOL_NAMESPACE::DtVrlinkConnection & mySimulation
Definition: orbatSimDataProcessor.h:149
OrbatAgentMap myOrbatAgents
Definition: orbatSimDataProcessor.h:155
The main class for the remote control interface to VR-Forces. Instantiating this class allows the sen...
Definition: vrfRemoteController.h:201
#define DT_PROTOCOL_NAMESPACE
Contains DLL export macros.
Definition: vrfDis.h:17
#define VRF_PROTOCOL_NAMESPACE
Definition: vrfDis.h:18
Definition: rwOrbatData.h:20
Class to manage disconnection of boost connections on deletion.
Definition: DtSignalConnectionManager.h:20
The protocol specific processor for orbat sim data.
Definition: orbatSimDataProcessor.h:49
makVrv::DT_PROTOCOL_NAMESPACE::DtAggregateExistenceListener & myAggregateListener
Definition: orbatSimDataProcessor.h:150
DtBalanacedUpdater updates updatee classes at a desired rate in a fair (each instance gets the same n...
Definition: DtBalancedUpdater.h:26
std::set< makVrv::DtUniqueID > OrbatIdList
Definition: orbatSimDataProcessor.h:131
Methods a data processor needs to implement to be considered a data processor.
Definition: DtSimDataProcessorInterface.h:24
makVrv::DtSignalConnectionManager myConnections
Definition: orbatSimDataProcessor.h:147
Contains makVrv::DtSimEntryUpdater class.
DtOrbatSimDataProcessor * myProcessor
Definition: orbatSimDataProcessor.h:128
DtAggregateExistenceListener class listens for the creation of aggregates and creates. specialized classes to monitor those vr-link aggregate items.
Definition: DtAggregateExistenceListener.h:54
Contains makVrv::DtBalancedUpdater class.
Base class to provide boost signal/slot management.
The DtEntityElementProcessor creates a reflected entity list, which calls on this class to create DtV...
Definition: DtEntityElementProcessor.h:48
DtOrbatStateObjectAgent * myObjectAgent
Definition: orbatSimDataProcessor.h:127
This listener will implement orbat specific listener code for allowing an entity state listener to be...
Definition: orbatStateListenerInterface.h:28
std::map< makVrv::DtUniqueID, OrbatSimDataInstance > OrbatAgentMap
Definition: orbatSimDataProcessor.h:140
makVrv::DtSimEntryUpdater::UpdateRate myRate
Definition: orbatSimDataProcessor.h:137
std::map< makVrv::DtSimEntryUpdater::UpdateRate, OrbatUpdaterGroup > OrbatUpdateGroupMap
Definition: orbatSimDataProcessor.h:144
Definition: orbatState.h:23
OrbatIdList myForceUpdateList
Definition: orbatSimDataProcessor.h:157
makVrv::DtBalancedUpdater< OrbatStateUpdater > OrbatUpdaterGroup
Definition: orbatSimDataProcessor.h:142
DtOrbatStateListenerInterface * myListener
Definition: orbatSimDataProcessor.h:135
DtVrfRemoteController * myRemoteController
Definition: orbatSimDataProcessor.h:158
DtEntityStateListener.
Definition: DtEntityStateListener.h:132

Document ID: Generated on Mon Jun 20 00:38:30 EDT 2022 from SVN revision 244029
Copyright © 2005-2021 MAK Technologies. All Rights Reserved (www.mak.com)