VR-Forces 4.7 Class Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
laserDesignatorSimDataProcessor.h
Go to the documentation of this file.
1 /*******************************************************************************
2 ** Copyright (c) 2018 MAK Technologies, Inc.
3 ** All rights reserved.
4 *******************************************************************************/
5 
9 
10 #pragma once
11 
13 
15 #include <vl/globalObjectDesignator.h>
20 #include <vlutil/vlPerformanceStats.h>
22 
23 namespace makVrv
24 {
25  class DtSimEntryObjectAgent;
26 
27  namespace DT_PROTOCOL_NAMESPACE
28  {
29  class DtVrlinkConnection;
31  class DtVrlinkAggregateStateListener;
32  }
33 }
34 
35 namespace makVrf
36 {
37  class DtLaserDesignatorStateObjectAgent;
38 
39  namespace VRF_PROTOCOL_NAMESPACE
40  {
43  {
44  public:
47 
50 
53 
56 
58  virtual void postDrainInput();
59 
61  virtual void setObjectUpdateRate(makVrv::DtUniqueID uniqueId, makVrv::DtSimEntryUpdater::UpdateRate rate);
62 
64  virtual void forceObjectUpdate(makVrv::DtUniqueID uniqueId);
65 
67  virtual void laserDesignatorDiscovered(makVrv::DT_PROTOCOL_NAMESPACE::DtVrlinkLaserDesignatorStateListener* listener);
68 
70  virtual void laserDesignatorToBeDeleted(makVrv::DT_PROTOCOL_NAMESPACE::DtVrlinkLaserDesignatorStateListener* listener);
71 
72  virtual void entityToBeDeleted(makVrv::DT_PROTOCOL_NAMESPACE::DtVrlinkEntityStateListener& listener);
73  virtual void entityDiscovered(makVrv::DT_PROTOCOL_NAMESPACE::DtVrlinkEntityStateListener& listener);
74 
75  virtual void aggregateToBeDeleted(makVrv::DT_PROTOCOL_NAMESPACE::DtVrlinkAggregateStateListener& listener);
76  virtual void aggregateDiscovered(makVrv::DT_PROTOCOL_NAMESPACE::DtVrlinkAggregateStateListener& listener);
77 
79  virtual bool createAndSendState(makVrv::DtElementID entity,
80  DtLaserDesignatorStateObjectAgent& objectDriver, DtLaserDesignatorState* state = 0);
82  DtLaserDesignatorState& state);
83 
85  boost::signal<void (makVrv::DtUniqueID, DtLaserDesignatorState)> signal_stateUpdated;
86  boost::signal<void (makVrv::DtUniqueID, DtLaserDesignatorState)> signal_stateAdded;
87 
88  protected:
89 
90  static void postDrainInput(void* usr);
91 
92  virtual makVrv::DtUniqueID entityIdForLaser(const DtGlobalObjectDesignator&) const;
93  virtual std::string entityTypeForLaser(const DtGlobalObjectDesignator&) const;
94 
95  virtual void slot_postUpdateCallback(makVrv::DT_PROTOCOL_NAMESPACE::DtVrlinkLaserDesignatorStateListener&);
96 
97  protected:
98 
99  //A Listener and a driver which will be updated with it.
101  {
102  public:
103 
105  DtLaserDesignatorStateObjectAgent& driver, DtLaserDesignatorSimDataProcessor& processor);
106 
108 
110 
111  //Are the updaters equal
112  bool operator==(const LaserDesignatorStateUpdater& orig) const;
113 
115  void update(double timeT);
116 
117  protected:
118 
120  DtLaserDesignatorStateObjectAgent* myObjectAgent;
122  };
123 
124  typedef std::set<makVrv::DtUniqueID> LaserDesignatorIdList;
125 
127  {
129 
132  DtLaserDesignatorStateObjectAgent* myAgent;
135  };
136 
137  typedef std::map<makVrv::DtUniqueID, LaserDesignatorSimDataInstance > LaserDesignatorAgentMap;
138 
140  typedef std::map<makVrv::DtSimEntryUpdater::UpdateRate,LaserDesignatorUpdaterGroup>
142 
143  protected:
145 
148  DtTimedSection myTimer;
149  makVrv::DtSimEntryObjectAgent* mySimEntryAgent;
150 
154 
155  typedef std::map<makVrv::DtUniqueID, DtLaserDesignatorState> LaserDesignatorStates;
157 
158  typedef std::map<DtGlobalObjectDesignator, makVrv::DT_PROTOCOL_NAMESPACE::DtVrlinkLaserDesignatorStateListener*> AwaitingMap;
160  };
161 
163  {
164  public:
167 
169 
172  static void registerInstance(makVrv::DT_PROTOCOL_NAMESPACE::DtVrlinkConnection& conn,
174 
176  };
177  }
178 }

Document ID: Generated on Fri Apr 26 21:53:14 EDT 2019 from SVN revision 197883
Copyright © 2005-2019 VT MAK. All Rights Reserved (www.mak.com)