VR-Forces 4.3.1 Class Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator 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 
23 namespace makVrv
24 {
25  class DtStateListenerInterface;
26  class DtEntityStateListener;
27  class DtAggregateStateListener;
28  class DtSimpleTypedDictionary;
29 
30  namespace DT_PROTOCOL_NAMESPACE
31  {
32  class DtVrlinkEnvironmentalStateListenerInterface;
33  class DtVrlinkConnection;
34  }
35 }
36 
37 namespace makVrf
38 {
39  namespace VRF_PROTOCOL_NAMESPACE
40  {
41 
44  {
45  public:
46 
49 
52 
55 
58 
60  void postDrainInput();
61 
63  void setObjectUpdateRate(makVrv::DtUniqueID uniqueId, makVrv::DtSimEntryUpdater::UpdateRate rate);
64 
66  void forceObjectUpdate(makVrv::DtUniqueID uniqueId);
67 
69  virtual void createAndSendState(makVrv::DtUniqueID id, makVrv::DtSimStateObjectAgent& objectDriver);
70 
74  virtual DtSimpleTypedDictionary& extendedStateFor(makVrv::DtUniqueID id, bool forceUpdate = true);
75 
77  virtual bool hasStateFor(makVrv::DtUniqueID) const;
78 
80  virtual DtExtendedStateData stateFor(makVrv::DtUniqueID id) const;
81 
82  boost::signal<void (makVrv::DtUniqueID, DtExtendedStateData&) > signal_stateUpdated;
83 
84  protected:
85 
87  static void postDrainInput(void* usr);
88 
90  virtual void entityToBeDestroyed(makVrv::DtEntityStateListener&);
91  virtual void aggregateToBeDestroyed(makVrv::DtAggregateStateListener&);
93  virtual void itemToBeDestroyed(makVrv::DtUniqueID);
94 
95  protected:
96 
97  //A Listener and a driver which will be updated with it.
99  {
100  public:
101 
102  ExtendedStateDataUpdater(makVrv::DtUniqueID id, DtExtendedStateDataObjectAgent& driver,
103  DtExtendedStateDataProcessor& processor);
104 
106 
107  ExtendedStateDataUpdater& operator=(const ExtendedStateDataUpdater& orig);
108 
109  //Are the updaters equal
110  bool operator==(const ExtendedStateDataUpdater& orig) const;
111 
113  void update(double timeT);
114 
115  protected:
117  DtExtendedStateDataObjectAgent* myObjectAgent;
119  };
120 
121  typedef std::vector<makVrv::DtUniqueID> ExtendedStateDataIdList;
122 
124  {
126  DtExtendedStateDataObjectAgent* myAgent;
129  };
130 
131  typedef std::map<makVrv::DtUniqueID,ExtendedStateDataInstance > ExtendedStateDataAgentMap;
132 
134  typedef std::map<makVrv::DtSimEntryUpdater::UpdateRate,ExtededStateDataUpdaterGroup>
136 
137  protected:
138 
140 
142  DtTimedSection myTimer;
143  makVrv::DtSimEntryObjectAgent* mySimEntryAgent;
144 
148  };
149  }
150 }

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)