VR-Forces 4.6 Class Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
extendedStateDataProcessor.h
Go to the documentation of this file.
1 /******************************************************************************
2 ** Copyright (c) 2013 MAK Technologies, Inc.
3 ** All rights reserved.
4 ******************************************************************************/
5 
11 
12 #pragma once
13 
15 
16 #include <vrfGuiCore/DtExtendedStateDataObjectAgent.hpp>
17 
20 #include <vrvCore/DtSimEntryObjectAgent.hpp>
22 #include <vlutil/vlPerformanceStats.h>
23 
24 namespace makVrv
25 {
26  class DtStateListenerInterface;
27  class DtEntityStateListener;
28  class DtAggregateStateListener;
29  class DtSimpleTypedDictionary;
30 
31  namespace DT_PROTOCOL_NAMESPACE
32  {
33  class DtVrlinkEnvironmentalStateListenerInterface;
34  class DtVrlinkConnection;
35  }
36 }
37 
38 namespace makVrf
39 {
40  namespace VRF_PROTOCOL_NAMESPACE
41  {
42 
45  {
46  public:
47 
50 
53 
56 
59 
61  void postDrainInput();
62 
64  void setObjectUpdateRate(makVrv::DtUniqueID uniqueId, makVrv::DtSimEntryUpdater::UpdateRate rate);
65 
67  void forceObjectUpdate(makVrv::DtUniqueID uniqueId);
68 
70  virtual void createAndSendState(makVrv::DtUniqueID id, makVrv::DtSimStateObjectAgent& objectDriver);
71 
75  virtual DtSimpleTypedDictionary& extendedStateFor(makVrv::DtUniqueID id, bool forceUpdate = true);
76 
78  virtual bool hasStateFor(makVrv::DtUniqueID) const;
79 
81  virtual DtExtendedStateData stateFor(makVrv::DtUniqueID id) const;
82 
83  boost::signal<void (makVrv::DtUniqueID, DtExtendedStateData&) > signal_stateUpdated;
84 
85  protected:
86 
88  static void postDrainInput(void* usr);
89 
91  virtual void entityToBeDestroyed(makVrv::DtEntityStateListener&);
92  virtual void aggregateToBeDestroyed(makVrv::DtAggregateStateListener&);
94  virtual void itemToBeDestroyed(makVrv::DtUniqueID);
95 
96  protected:
97 
98  //A Listener and a driver which will be updated with it.
100  {
101  public:
102 
103  ExtendedStateDataUpdater(makVrv::DtUniqueID id, DtExtendedStateDataObjectAgent& driver,
104  DtExtendedStateDataProcessor& processor);
105 
107 
108  ExtendedStateDataUpdater& operator=(const ExtendedStateDataUpdater& orig);
109 
110  //Are the updaters equal
111  bool operator==(const ExtendedStateDataUpdater& orig) const;
112 
114  void update(double timeT);
115 
116  protected:
118  DtExtendedStateDataObjectAgent* myObjectAgent;
120  };
121 
122  typedef std::vector<makVrv::DtUniqueID> ExtendedStateDataIdList;
123 
125  {
127  DtExtendedStateDataObjectAgent* myAgent;
130  };
131 
132  typedef std::map<makVrv::DtUniqueID,ExtendedStateDataInstance > ExtendedStateDataAgentMap;
133 
135  typedef std::map<makVrv::DtSimEntryUpdater::UpdateRate,ExtededStateDataUpdaterGroup>
137 
138  protected:
139 
141 
143  DtTimedSection myTimer;
144  makVrv::DtSimEntryObjectAgent* mySimEntryAgent;
145 
149  };
150 
152  {
153  public:
156 
158 
161  static void registerInstance(makVrv::DT_PROTOCOL_NAMESPACE::DtVrlinkConnection& conn,
163 
165  };
166  }
167 }

Document ID: Generated on Thu Apr 12 03:15:37 EDT 2018 from SVN revision 187986
Copyright © 2005-2018 VT MÄK. All Rights Reserved (www.mak.com)