VR-Forces 4.10 Class Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
emitterSystemSimDataProcessor.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 
17 
20 #include <vl/globalObjectDesignator.h>
21 #include <vlutil/vlPerformanceStats.h>
22 
24 
25 namespace makVrv
26 {
27  class DtSimEntryObjectAgent;
28  class DtEntityStateListener;
29  class DtAggregateStateListener;
30 
31  namespace DT_PROTOCOL_NAMESPACE
32  {
33  class DtVrlinkConnection;
34  class DtVrlinkEmitterStateListener;
35  class DtEmitterSystemExistenceListener;
36  class DtEntityElementProcessor;
37  class DtAggregateElementProcessor;
38  }
39 }
40 
41 namespace makVrf
42 {
43  class DtVrlinkEmitterSystemStateObjectAgent;
44 
45  namespace VRF_PROTOCOL_NAMESPACE
46  {
49  {
50  public:
51 
53  {
54  std::vector<makVrv::DT_PROTOCOL_NAMESPACE::DtVrlinkEmitterStateListener*> myListeners;
55  DtVrlinkEmitterSystemStateObjectAgent* myAgent;
58  };
59 
62 
65 
68  {
69  return dynamic_cast<DtEmitterSystemSimDataProcessor*>(
70  sim.findInstance("DtEmitterSystemSimDataProcessor"));
71  }
72 
75  {
76  sim.registerInstance("DtEmitterSystemSimDataProcessor",proc);
77  }
78 
80  void postDrainInput();
81 
83  void setObjectUpdateRate(makVrv::DtUniqueID uniqueId, makVrv::DtSimEntryUpdater::UpdateRate rate);
84 
86  virtual void forceObjectUpdate(makVrv::DtUniqueID uniqueId);
87 
89  virtual void emitterSystemDiscovered(makVrv::DT_PROTOCOL_NAMESPACE::DtVrlinkEmitterStateListener* listener);
90 
92  virtual void emitterSystemToBeDeleted(makVrv::DT_PROTOCOL_NAMESPACE::DtVrlinkEmitterStateListener* listener);
93 
94  virtual void entityToBeDeleted(makVrv::DtEntityStateListener& listener);
95  virtual void aggregateToBeDeleted(makVrv::DtAggregateStateListener& listener);
96 
98  virtual void createAndSendState(std::vector<makVrv::DT_PROTOCOL_NAMESPACE::DtVrlinkEmitterStateListener*>& listeners,
99  makVrv::DtUniqueID entityId, DtVrlinkEmitterSystemStateObjectAgent& objectAgent);
100  virtual void setState(makVrv::DT_PROTOCOL_NAMESPACE::DtVrlinkEmitterStateListener& listener,
102  virtual void setState(DtVrlinkEmitterBeamState&, DtEmitterBeamRepository*);
103 
105  virtual makVrv::DtUniqueID mapHostIdToEntityUniqueId(const DtGlobalObjectDesignator& host,
106  const DtGlobalObjectDesignator& systemId, makVrv::DtUniqueID systemUniqueId) const;
107 
109  virtual bool setupCallbackAgentFor(makVrv::DT_PROTOCOL_NAMESPACE::DtVrlinkEmitterStateListener* listener);
110 
111  virtual void removeUpdaterAgent(makVrv::DtUniqueID id);
112 
113  boost::signals2::signal<void (makVrv::DtUniqueID, DtVrlinkEmitterSystemState)> signal_stateAdded;
114 
115  protected:
116 
117  static void postDrainInput(void* usr);
118 
119  virtual void slot_entityElementCreated();
120  virtual void slot_aggregateElementCreated();
121 
122  protected:
123 
124  //A Listener and a driver which will be updated with it.
126  {
127  public:
128 
130 
132 
134 
135  //Are the updaters equal
136  bool operator==(const EmitterSystemStateUpdater& orig) const;
137 
139  void update(double timeT);
140 
141  protected:
144  };
145 
146  typedef std::set<makVrv::DtUniqueID> EmitterSystemIdList;
147 
148  typedef std::map<makVrv::DtUniqueID,EmitterSystemSimDataInstance > EmitterSystemAgentMap;
149 
151  typedef std::map<makVrv::DtSimEntryUpdater::UpdateRate,EmitterSystemUpdaterGroup>
153 
154  protected:
155 
157 
160  DtTimedSection myTimer;
161  makVrv::DtSimEntryObjectAgent* mySimEntryAgent;
162 
166 
167  typedef std::map<makVrv::DtUniqueID, DtVrlinkEmitterSystems> StateMapBySystem;
169 
170  typedef std::map<makVrv::DtUniqueID, DtVrlinkEmitterSystems> StateMapByEntity;
174 
175  std::set<makVrv::DtUniqueID> myPendingListeners;
176  };
177 
179  {
180  public:
183 
185 
188  static void registerInstance(makVrv::DT_PROTOCOL_NAMESPACE::DtVrlinkConnection& conn,
190 
192  };
193  }
194 }
DtVrlinkEmitterSystemStateObjectAgent * myAgent
Definition: emitterSystemSimDataProcessor.h:55
EmitterSystemUpdateGroupMap myRefreshRateGroups
Definition: emitterSystemSimDataProcessor.h:164
Contains makVrv::DtSimDataProcessorInterface class.
Listens for new emitter systems and keeps track of them.
Definition: DtEmitterSystemExistenceListener.h:43
Virtual base class.
Definition: DtVirtualBaseClass.h:19
#define VRF_PROTOCOL_EXPORT
Definition: vrfProtocol.h:24
makVrv::DtSimEntryUpdater::UpdateRate myRate
Definition: emitterSystemSimDataProcessor.h:56
std::map< makVrv::DtUniqueID, DtVrlinkEmitterSystems > StateMapBySystem
Definition: emitterSystemSimDataProcessor.h:167
UpdateRate
Definition: DtSimEntryUpdater.h:31
static DtEmitterSystemSimDataProcessor * findInstance(makVrv::DT_PROTOCOL_NAMESPACE::DtVrlinkConnection &sim)
Definition: emitterSystemSimDataProcessor.h:66
DT_DLL_VRFGUICORE bool operator==(const std::vector< makArchives::DtEnvironmentRecord::DtElevationalConfigurationRecord > &lhs, const std::vector< makArchives::DtEnvironmentRecord::DtElevationalConfigurationRecord > &rhs)
The DtAggregateStateListener is an abstract class.
Definition: DtAggregateStateListener.h:25
makVrv::DT_PROTOCOL_NAMESPACE::DtEntityElementProcessor * myEntityElementProcessor
Definition: emitterSystemSimDataProcessor.h:172
The protocol specific processor for EmitterSystem sim data.
Definition: emitterSystemSimDataProcessor.h:48
makVrv::DtBalancedUpdater< EmitterSystemStateUpdater > EmitterSystemUpdaterGroup
Definition: emitterSystemSimDataProcessor.h:150
EmitterSystemAgentMap myEmitterSystemAgents
Definition: emitterSystemSimDataProcessor.h:163
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...
makVrv::DT_PROTOCOL_NAMESPACE::DtAggregateElementProcessor * myAggregateElementProcessor
Definition: emitterSystemSimDataProcessor.h:173
virtual DtVirtualBaseClass * findInstance(const std::string &instanceName)
Find an instance with the given name.
boost::signals2::signal< void(makVrv::DtUniqueID, DtVrlinkEmitterSystemState)> signal_stateAdded
Definition: emitterSystemSimDataProcessor.h:113
std::map< makVrv::DtUniqueID, DtVrlinkEmitterSystems > StateMapByEntity
Definition: emitterSystemSimDataProcessor.h:170
makVrv::DT_PROTOCOL_NAMESPACE::DtEmitterSystemExistenceListener & myListener
Definition: emitterSystemSimDataProcessor.h:159
#define VRF_PROTOCOL_NAMESPACE
Definition: vrfDis.h:18
std::map< makVrv::DtUniqueID, EmitterSystemSimDataInstance > EmitterSystemAgentMap
Definition: emitterSystemSimDataProcessor.h:148
DtTimedSection myTimer
Definition: emitterSystemSimDataProcessor.h:160
makVrv::DtSimEntryObjectAgent * mySimEntryAgent
Definition: emitterSystemSimDataProcessor.h:161
Class to manage disconnection of boost connections on deletion.
Definition: DtSignalConnectionManager.h:20
The DtAggregateElementProcessor will connect to the DtAggregateExistenceListener and handle the creat...
Definition: DtAggregateElementProcessor.h:47
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 > EmitterSystemIdList
Definition: emitterSystemSimDataProcessor.h:146
std::vector< makVrv::DT_PROTOCOL_NAMESPACE::DtVrlinkEmitterStateListener * > myListeners
Definition: emitterSystemSimDataProcessor.h:54
StateMapByEntity myStateMapByEntity
Definition: emitterSystemSimDataProcessor.h:171
makVrv::DtSignalConnectionManager myConnections
Definition: emitterSystemSimDataProcessor.h:156
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
std::map< makVrv::DtSimEntryUpdater::UpdateRate, EmitterSystemUpdaterGroup > EmitterSystemUpdateGroupMap
Definition: emitterSystemSimDataProcessor.h:152
#define DT_PROTOCOL_NAMESPACE
Make VR-Vantage VRLink code export with library #ifdef DL_DLL_IGCONVRLINK #undef DL_DLL_IGCONVRLINK #...
Definition: export.h:32
Contains makVrv::DtSimEntryUpdater class.
Contains makVrv::DtBalancedUpdater class.
EmitterSystemSimDataInstance * myEmitterSystem
Definition: emitterSystemSimDataProcessor.h:142
Base class to provide boost signal/slot management.
The DtEntityElementProcessor will connect to the DtEntityExistenceListener and handle the creation of...
Definition: DtEntityElementProcessor.h:44
makVrv::DtUniqueID myEntityId
Definition: emitterSystemSimDataProcessor.h:57
static void registerInstance(makVrv::DT_PROTOCOL_NAMESPACE::DtVrlinkConnection &sim, DtEmitterSystemSimDataProcessor *proc)
Definition: emitterSystemSimDataProcessor.h:73
std::set< makVrv::DtUniqueID > myPendingListeners
Definition: emitterSystemSimDataProcessor.h:175
makVrv::DT_PROTOCOL_NAMESPACE::DtVrlinkConnection & mySimulation
Definition: emitterSystemSimDataProcessor.h:158
Definition: emitterSystemSimDataProcessor.h:178
EmitterSystemIdList myForceUpdateList
Definition: emitterSystemSimDataProcessor.h:165
DtEmitterSystemSimDataProcessor * myProcessor
Definition: emitterSystemSimDataProcessor.h:143
StateMapBySystem myStateMapBySystem
Definition: emitterSystemSimDataProcessor.h:168
DtEntityStateListener.
Definition: DtEntityStateListener.h:44

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)