VR-Forces 4.10 Class Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
activeSonarSimDataProcessor.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 
15 
18 
21 #include <vlutil/vlPerformanceStats.h>
22 
23 class DtActiveSonarBeamRepository;
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 DtEntityElementProcessor;
35  class DtAggregateElementProcessor;
36  }
37 }
38 
39 namespace makVrf
40 {
41  class DtVrlinkActiveSonarStateObjectAgent;
42 
43  namespace VRF_PROTOCOL_NAMESPACE
44  {
45  class DtActiveSonarExistenceListener;
46 
49  {
50  public:
51 
53  {
54  std::vector<DtVrlinkActiveSonarStateListener*> myListeners;
55  DtVrlinkActiveSonarStateObjectAgent* myAgent;
58  };
59 
62 
65  {
66  return dynamic_cast<DtActiveSonarSimDataProcessor*>(
67  sim.findInstance("DtActiveSonarSimDataProcessor"));
68  }
69 
72  {
73  sim.registerInstance("DtActiveSonarSimDataProcessor",proc);
74  }
75 
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 activeSonarDiscovered(DtVrlinkActiveSonarStateListener* listener);
90 
92  virtual void activeSonarToBeDeleted(DtVrlinkActiveSonarStateListener* listener);
93 
94  virtual void entityToBeDeleted(makVrv::DtEntityStateListener& listener);
95  virtual void aggregateToBeDeleted(makVrv::DtAggregateStateListener& listener);
96 
98  virtual void createAndSendState(std::vector<DtVrlinkActiveSonarStateListener*>& listeners,
99  makVrv::DtUniqueID entityId, DtVrlinkActiveSonarStateObjectAgent& objectAgent);
100  virtual void setState(DtVrlinkActiveSonarStateListener& listener,
101  DtVrlinkActiveSonarState& state);
102  virtual void setState(DtVrlinkActiveSonarBeamState&, DtActiveSonarBeamRepository*);
103 
105  virtual makVrv::DtUniqueID mapHostIdToEntityUniqueId(const DtGlobalObjectDesignator& host,
106  const DtGlobalObjectDesignator& systemId, makVrv::DtUniqueID systemUniqueId) const;
107 
109  virtual bool setupCallbackAgentFor(DtVrlinkActiveSonarStateListener* listener);
110 
111  virtual void removeUpdaterAgent(makVrv::DtUniqueID id);
112 
113  boost::signals2::signal<void (makVrv::DtUniqueID, DtVrlinkActiveSonarState)> signal_stateAdded;
114 
115  protected:
116 
117  static void postDrainInput(void* usr);
118 
119  virtual void slot_postUpdateCallback(DtVrlinkActiveSonarStateListener& listener);
120 
121  protected:
122 
123  //A Listener and a driver which will be updated with it.
125  {
126  public:
127 
129 
131 
132  ActiveSonarStateUpdater& operator=(const ActiveSonarStateUpdater& orig);
133 
134  //Are the updaters equal
135  bool operator==(const ActiveSonarStateUpdater& orig) const;
136 
138  void update(double timeT);
139 
140  protected:
143  };
144 
145  typedef std::vector<makVrv::DtUniqueID> ActiveSonarIdList;
146 
147  typedef std::map<makVrv::DtUniqueID,ActiveSonarSimDataInstance > ActiveSonarAgentMap;
148 
150  typedef std::map<makVrv::DtSimEntryUpdater::UpdateRate,ActiveSonarUpdaterGroup>
152 
153  protected:
154 
156 
159  DtTimedSection myTimer;
160 
164 
165  typedef std::map<makVrv::DtUniqueID, DtVrlinkActiveSonars> StateMapBySystem;
167 
168  typedef std::map<makVrv::DtUniqueID, DtVrlinkActiveSonars> StateMapByEntity;
170 
173  };
174 
176  {
177  public:
180 
182 
185  static void registerInstance(makVrv::DT_PROTOCOL_NAMESPACE::DtVrlinkConnection& conn,
187 
189  };
190  }
191 }
makVrv::DtSimEntryUpdater::UpdateRate myRate
Definition: activeSonarSimDataProcessor.h:56
Contains makVrv::DtSimDataProcessorInterface class.
Virtual base class.
Definition: DtVirtualBaseClass.h:19
#define VRF_PROTOCOL_EXPORT
Definition: vrfProtocol.h:24
std::map< makVrv::DtUniqueID, ActiveSonarSimDataInstance > ActiveSonarAgentMap
Definition: activeSonarSimDataProcessor.h:147
ActiveSonarIdList myForceUpdateList
Definition: activeSonarSimDataProcessor.h:163
UpdateRate
Definition: DtSimEntryUpdater.h:31
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
StateMapBySystem myStateMapBySystem
Definition: activeSonarSimDataProcessor.h:166
std::vector< makVrv::DtUniqueID > ActiveSonarIdList
Definition: activeSonarSimDataProcessor.h:145
ActiveSonarSimDataInstance * myActiveSonar
Definition: activeSonarSimDataProcessor.h:141
makVrv::DtUniqueID myEntityId
Definition: activeSonarSimDataProcessor.h:57
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::DtSignalConnectionManager myConnections
Definition: activeSonarSimDataProcessor.h:155
std::vector< DtVrlinkActiveSonarStateListener * > myListeners
Definition: activeSonarSimDataProcessor.h:54
makVrv::DtBalancedUpdater< ActiveSonarStateUpdater > ActiveSonarUpdaterGroup
Definition: activeSonarSimDataProcessor.h:149
static void registerInstance(makVrv::DT_PROTOCOL_NAMESPACE::DtVrlinkConnection &sim, DtActiveSonarSimDataProcessor *proc)
Definition: activeSonarSimDataProcessor.h:70
virtual DtVirtualBaseClass * findInstance(const std::string &instanceName)
Find an instance with the given name.
DtActiveSonarSimDataProcessor * myProcessor
Definition: activeSonarSimDataProcessor.h:142
DtActiveSonarExistenceListener & myListener
Definition: activeSonarSimDataProcessor.h:158
#define VRF_PROTOCOL_NAMESPACE
Definition: vrfDis.h:18
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
The protocol specific processor for ActiveSonar sim data.
Definition: activeSonarSimDataProcessor.h:48
std::map< makVrv::DtSimEntryUpdater::UpdateRate, ActiveSonarUpdaterGroup > ActiveSonarUpdateGroupMap
Definition: activeSonarSimDataProcessor.h:151
makVrv::DT_PROTOCOL_NAMESPACE::DtEntityElementProcessor * myEntityElementProcessor
Definition: activeSonarSimDataProcessor.h:171
Listens for new active sonar systems and keeps track of them.
Definition: activeSonarExistenceListener.h:69
unsigned long long DtUniqueID
Definition: DtUniqueID.h:19
std::map< makVrv::DtUniqueID, DtVrlinkActiveSonars > StateMapByEntity
Definition: activeSonarSimDataProcessor.h:168
Methods a data processor needs to implement to be considered a data processor.
Definition: DtSimDataProcessorInterface.h:24
static DtActiveSonarSimDataProcessor * findInstance(makVrv::DT_PROTOCOL_NAMESPACE::DtVrlinkConnection &sim)
Definition: activeSonarSimDataProcessor.h:63
#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.
DtTimedSection myTimer
Definition: activeSonarSimDataProcessor.h:159
Base class to provide boost signal/slot management.
makVrv::DT_PROTOCOL_NAMESPACE::DtAggregateElementProcessor * myAggregateElementProcessor
Definition: activeSonarSimDataProcessor.h:172
The DtEntityElementProcessor will connect to the DtEntityExistenceListener and handle the creation of...
Definition: DtEntityElementProcessor.h:44
StateMapByEntity myStateMapByEntity
Definition: activeSonarSimDataProcessor.h:169
std::map< makVrv::DtUniqueID, DtVrlinkActiveSonars > StateMapBySystem
Definition: activeSonarSimDataProcessor.h:165
makVrv::DT_PROTOCOL_NAMESPACE::DtVrlinkConnection & mySimulation
Definition: activeSonarSimDataProcessor.h:157
DtVrlinkActiveSonarStateObjectAgent * myAgent
Definition: activeSonarSimDataProcessor.h:55
ActiveSonarAgentMap myActiveSonarAgents
Definition: activeSonarSimDataProcessor.h:161
boost::signals2::signal< void(makVrv::DtUniqueID, DtVrlinkActiveSonarState)> signal_stateAdded
Definition: activeSonarSimDataProcessor.h:113
ActiveSonarUpdateGroupMap myRefreshRateGroups
Definition: activeSonarSimDataProcessor.h:162
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)