VR-Forces 4.2 Class Documentation
DtPropulsionNoiseSimDataProcessor.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 
14 #include <vrvCore/DtSimEntryUpdater.h>
15 #include <vrvCore/DtSimDataProcessorInterface.h>
16 #include <vrvUtil/DtBalancedUpdater.h>
17 #include <vrvUtil/DtSignalConnectionManager.h>
18 
19 namespace makVrv
20 {
21  class DtSimEntryObjectAgent;
22 
23  namespace DT_PROTOCOL_NAMESPACE
24  {
25  class DtVrlinkConnection;
26  class DtEntityElementProcessor;
27  }
28 }
29 
30 namespace makVrf
31 {
32  class DtPropulsionNoiseStateObjectAgent;
33 
34  namespace VRF_PROTOCOL_NAMESPACE
35  {
36  class DtPropulsionNoiseExistenceListener;
37  class DtVrlinkPropulsionNoiseStateListener;
38 
40  class VRF_PROTOCOL_EXPORT DtPropulsionNoiseSimDataProcessor : public makVrv::DtSimDataProcessorInterface
41  {
42  public:
44  static DtPropulsionNoiseSimDataProcessor* findInstance(makVrv::DT_PROTOCOL_NAMESPACE::DtVrlinkConnection& sim);
45 
47  static void registerInstance(makVrv::DT_PROTOCOL_NAMESPACE::DtVrlinkConnection& sim,DtPropulsionNoiseSimDataProcessor*);
48 
50  DtPropulsionNoiseSimDataProcessor(makVrv::DT_PROTOCOL_NAMESPACE::DtVrlinkConnection& sim);
51 
54 
56  virtual void postDrainInput();
57 
59  virtual void setObjectUpdateRate(makVrv::DtUniqueID uniqueId, makVrv::DtSimEntryUpdater::UpdateRate rate);
60 
62  virtual void forceObjectUpdate(makVrv::DtUniqueID uniqueId);
63 
65  virtual void propulsionNoiseDiscovered(DtVrlinkPropulsionNoiseStateListener& listener);
66 
68  virtual void propulsionNoiseToBeDeleted(DtVrlinkPropulsionNoiseStateListener& listener);
69 
70  virtual void entityToBeDeleted(makVrv::DtEntityStateListener& listener);
71 
73  virtual void createAndSendState(makVrv::DtElementID entity,
74  DtPropulsionNoiseStateObjectAgent& objectDriver);
75  virtual void setState(DtVrlinkPropulsionNoiseStateListener& listener,
77 
78  boost::signal<void (makVrv::DtUniqueID, DtPropulsionNoiseStateData)> signal_stateUpdated;
79  boost::signal<void (makVrv::DtUniqueID, DtPropulsionNoiseStateData)> signal_stateAdded;
80 
81  protected:
82 
83  static void postDrainInput(void* usr);
84 
85  virtual void slot_postUpdateCallback(DtVrlinkPropulsionNoiseStateListener&);
86 
87  protected:
88 
89  //A Listener and a driver which will be updated with it.
91  {
92  public:
93 
94  PropulsionNoiseStateUpdater(makVrv::DtElementID,
95  DtPropulsionNoiseStateObjectAgent& driver, DtPropulsionNoiseSimDataProcessor& processor);
96 
98 
100 
101  //Are the updaters equal
102  bool operator==(const PropulsionNoiseStateUpdater& orig) const;
103 
105  void update(double timeT);
106 
107  protected:
108 
109  makVrv::DtElementID myEntity;
110  DtPropulsionNoiseStateObjectAgent* myObjectAgent;
112  };
113 
114  typedef std::vector<makVrv::DtUniqueID> PropulsionNoiseIdList;
115 
116  typedef std::map<DtString, DtVrlinkPropulsionNoiseStateListener*> PropulsionNoiseListeners;
118  {
120  DtPropulsionNoiseStateObjectAgent* myAgent;
121  std::string myHostId;
122  makVrv::DtSimEntryUpdater::UpdateRate myRate;
123  };
124 
125  typedef std::map<makVrv::DtUniqueID,PropulsionNoiseSimDataInstance > PropulsionNoiseAgentMap;
126 
127  typedef makVrv::DtBalancedUpdater<PropulsionNoiseStateUpdater> PropulsionNoiseUpdaterGroup;
128  typedef std::map<makVrv::DtSimEntryUpdater::UpdateRate,PropulsionNoiseUpdaterGroup>
130 
131  protected:
132  makVrv::DtSignalConnectionManager myConnections;
133 
134  makVrv::DT_PROTOCOL_NAMESPACE::DtVrlinkConnection& mySimulation;
135  makVrv::DT_PROTOCOL_NAMESPACE::DtEntityElementProcessor* myEntityElementProcessor;
137  DtTimedSection myTimer;
138 
142 
143  typedef std::map<makVrv::DtUniqueID, DtPropulsionNoiseStateData> PropulsionNoiseStates;
145  };
146  }
147 }

Document ID: Generated on Sun Nov 24 19:49:21 EST 2013 from SVN revision 133924
Copyright © 2005-2013 VT MÄK. All Rights Reserved (www.mak.com)