VR-Forces 4.2 Class Documentation
DtVrlinkEnvironmentSimDataProcessor.h
Go to the documentation of this file.
1 /******************************************************************************
2 ** Copyright (c) 2009 MAK Technologies, Inc.
3 ** All rights reserved.
4 ******************************************************************************/
5 /******************************************************************************
6 ** $RCSfile: DtVrlinkEnvironmentSimDataProcessor.h,v $ $Revision: 1.2 $ $State: Exp $
7 ******************************************************************************/
8 
12 
13 #pragma once
14 
17 
18 #include <vrvCore/DtSimEntryUpdater.h>
19 #include <vrvCore/DtSimDataProcessorInterface.h>
20 
21 #include <vrvUtil/DtBalancedUpdater.h>
22 #include <vrvUtil/DtSignalConnectionManager.h>
23 
24 namespace makVrv
25 {
26  class DtSimEntryObjectAgent;
27 
28  namespace DT_PROTOCOL_NAMESPACE
29  {
30  class DtVrlinkConnection;
31  class DtVrlinkEnvironmentalStateListenerInterface;
32  class DtEnvironmentalExistenceListener;
33  }
34 }
35 
36 namespace makVrf
37 {
38  class DtEnvironmentStateObjectAgent;
39 
40  namespace VRF_PROTOCOL_NAMESPACE
41  {
43  class VRF_PROTOCOL_EXPORT DtEnvironmentSimDataProcessor : public makVrv::DtSimDataProcessorInterface
44  {
45  public:
46 
48  DtEnvironmentSimDataProcessor(makVrv::DT_PROTOCOL_NAMESPACE::DtVrlinkConnection& sim);
49 
52 
54  void postDrainInput();
55 
57  void setObjectUpdateRate(makVrv::DtUniqueID uniqueId, makVrv::DtSimEntryUpdater::UpdateRate rate);
58 
60  void forceObjectUpdate(makVrv::DtUniqueID uniqueId);
61 
63  void environmentDiscovered(makVrv::DT_PROTOCOL_NAMESPACE::DtVrlinkEnvironmentalStateListenerInterface& listener);
64 
66  void environmentToBeDeleted(makVrv::DT_PROTOCOL_NAMESPACE::DtVrlinkEnvironmentalStateListenerInterface& listener);
67 
69  virtual void createAndSendState(makVrv::DT_PROTOCOL_NAMESPACE::DtVrlinkEnvironmentalStateListenerInterface& listener,
70  DtEnvironmentStateObjectAgent& objectDriver);
71  virtual void setState(makVrv::DT_PROTOCOL_NAMESPACE::DtVrlinkEnvironmentalStateListenerInterface& listener,
73  virtual void setupPoints(makVrv::DT_PROTOCOL_NAMESPACE::DtVrlinkEnvironmentalStateListenerInterface& listener,
75 
76  protected:
77 
78  static void postDrainInput(void* usr);
79 
80  virtual void slot_postUpdateCallback(makVrv::DT_PROTOCOL_NAMESPACE::DtVrlinkEnvironmentalStateListenerInterface& listener);
81 
82  protected:
83 
84  //A Listener and a driver which will be updated with it.
86  {
87  public:
88 
89  EnvironmentStateUpdater(makVrv::DT_PROTOCOL_NAMESPACE::DtVrlinkEnvironmentalStateListenerInterface& listener,
90  DtEnvironmentStateObjectAgent& driver, DtEnvironmentSimDataProcessor& processor);
91 
93 
94  EnvironmentStateUpdater& operator=(const EnvironmentStateUpdater& orig);
95 
96  //Are the updaters equal
97  bool operator==(const EnvironmentStateUpdater& orig) const;
98 
100  void update(double timeT);
101 
102  protected:
103 
104  makVrv::DT_PROTOCOL_NAMESPACE::DtVrlinkEnvironmentalStateListenerInterface* myListener;
105  DtEnvironmentStateObjectAgent* myObjectAgent;
107  };
108 
109  typedef std::vector<makVrv::DtUniqueID> EnvironmentIdList;
110 
112  {
113  makVrv::DT_PROTOCOL_NAMESPACE::DtVrlinkEnvironmentalStateListenerInterface* myListener;
114  DtEnvironmentStateObjectAgent* myAgent;
115  makVrv::DtSimEntryUpdater::UpdateRate myRate;
116  };
117 
118  typedef std::map<makVrv::DtUniqueID,EnvironmentSimDataInstance > EnvironmentAgentMap;
119 
120  typedef makVrv::DtBalancedUpdater<EnvironmentStateUpdater> EnvironmentUpdaterGroup;
121  typedef std::map<makVrv::DtSimEntryUpdater::UpdateRate,EnvironmentUpdaterGroup>
123 
124  protected:
125 
126  makVrv::DtSignalConnectionManager myConnections;
127 
128  makVrv::DT_PROTOCOL_NAMESPACE::DtVrlinkConnection& mySimulation;
129  makVrv::DT_PROTOCOL_NAMESPACE::DtEnvironmentalExistenceListener& myListener;
130  DtTimedSection myTimer;
131  makVrv::DtSimEntryObjectAgent* mySimEntryAgent;
132 
136 
137  typedef boost::unordered_map<makVrv::DtUniqueID, DtVrlinkSimulatedEnvironmentProcess> StateMap;
139  };
140  }
141 }

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)