VR-Forces 4.3.1 Class Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator 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 
23 
24 namespace makVrv
25 {
26  class DtSimEntryObjectAgent;
27  class DtEntityStateListener;
28  class DtAggregateStateListener;
29 
30  namespace DT_PROTOCOL_NAMESPACE
31  {
32  class DtVrlinkConnection;
33  class DtVrlinkEmitterStateListener;
34  class DtEmitterSystemExistenceListener;
35  class DtEntityElementProcessor;
36  class DtAggregateElementProcessor;
37  }
38 }
39 
40 namespace makVrf
41 {
42  class DtVrlinkEmitterSystemStateObjectAgent;
43 
44  namespace VRF_PROTOCOL_NAMESPACE
45  {
48  {
49  public:
50 
52  {
53  std::vector<makVrv::DT_PROTOCOL_NAMESPACE::DtVrlinkEmitterStateListener*> myListeners;
54  DtVrlinkEmitterSystemStateObjectAgent* myAgent;
57  };
58 
61 
64 
65  static DtEmitterSystemSimDataProcessor* findInstance(
67  {
68  return dynamic_cast<DtEmitterSystemSimDataProcessor*>(
69  sim.findInstance("DtEmitterSystemSimDataProcessor"));
70  }
71 
72  static void registerInstance(makVrv::DT_PROTOCOL_NAMESPACE::DtVrlinkConnection& sim,
74  {
75  sim.registerInstance("DtEmitterSystemSimDataProcessor",proc);
76  }
77 
79  void postDrainInput();
80 
82  void setObjectUpdateRate(makVrv::DtUniqueID uniqueId, makVrv::DtSimEntryUpdater::UpdateRate rate);
83 
85  virtual void forceObjectUpdate(makVrv::DtUniqueID uniqueId);
86 
88  virtual void emitterSystemDiscovered(makVrv::DT_PROTOCOL_NAMESPACE::DtVrlinkEmitterStateListener* listener);
89 
91  virtual void emitterSystemToBeDeleted(makVrv::DT_PROTOCOL_NAMESPACE::DtVrlinkEmitterStateListener* listener);
92 
93  virtual void entityToBeDeleted(makVrv::DtEntityStateListener& listener);
94  virtual void aggregateToBeDeleted(makVrv::DtAggregateStateListener& listener);
95 
97  virtual void createAndSendState(std::vector<makVrv::DT_PROTOCOL_NAMESPACE::DtVrlinkEmitterStateListener*>& listeners,
98  makVrv::DtUniqueID entityId, DtVrlinkEmitterSystemStateObjectAgent& objectAgent);
101  virtual void setState(DtVrlinkEmitterBeamState&, DtEmitterBeamRepository*);
102 
104  virtual makVrv::DtUniqueID mapHostIdToEntityUniqueId(const DtGlobalObjectDesignator& host,
105  const DtGlobalObjectDesignator& systemId, makVrv::DtUniqueID systemUniqueId) const;
106 
108  virtual bool setupCallbackAgentFor(makVrv::DT_PROTOCOL_NAMESPACE::DtVrlinkEmitterStateListener* listener);
109 
110  virtual void removeUpdaterAgent(makVrv::DtUniqueID id);
111 
112  boost::signal<void (makVrv::DtUniqueID, DtVrlinkEmitterSystemState)> signal_stateAdded;
113 
114  protected:
115 
116  static void postDrainInput(void* usr);
117 
118  virtual void slot_entityElementCreated();
119  virtual void slot_aggregateElementCreated();
120 
121  protected:
122 
123  //A Listener and a driver which will be updated with it.
125  {
126  public:
127 
129 
131 
133 
134  //Are the updaters equal
135  bool operator==(const EmitterSystemStateUpdater& orig) const;
136 
138  void update(double timeT);
139 
140  protected:
143  };
144 
145  typedef std::vector<makVrv::DtUniqueID> EmitterSystemIdList;
146 
147  typedef std::map<makVrv::DtUniqueID,EmitterSystemSimDataInstance > EmitterSystemAgentMap;
148 
150  typedef std::map<makVrv::DtSimEntryUpdater::UpdateRate,EmitterSystemUpdaterGroup>
152 
153  protected:
154 
156 
159  DtTimedSection myTimer;
160  makVrv::DtSimEntryObjectAgent* mySimEntryAgent;
161 
165 
166  typedef std::map<makVrv::DtUniqueID, DtVrlinkEmitterSystems> StateMapBySystem;
168 
169  typedef std::map<makVrv::DtUniqueID, DtVrlinkEmitterSystems> StateMapByEntity;
173 
174  std::set<makVrv::DtUniqueID> myPendingListeners;
175  };
176  }
177 }

Document ID: Generated on Wed Jul 29 00:55:00 EDT 2015 from SVN revision 155257
Copyright © 2005-2015 VT MÄK. All Rights Reserved (www.mak.com)