VR-Forces Development_Version Class Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator 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 
63  static DtActiveSonarSimDataProcessor* findInstance(
65  {
66  return dynamic_cast<DtActiveSonarSimDataProcessor*>(
67  sim.findInstance("DtActiveSonarSimDataProcessor"));
68  }
69 
70  static void registerInstance(makVrv::DT_PROTOCOL_NAMESPACE::DtVrlinkConnection& sim,
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::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  }
175 }

Document ID: Generated on Tue Mar 8 22:13:38 EST 2016 from SVN revision 162938
Copyright © 2005-2015 VT MÄK. All Rights Reserved (www.mak.com)