VR-Forces 4.6 Class Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
vrfObjectDataStateProcessor.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 
13 #include <vrfGuiCore/DtVrfObjectDataStateObjectAgent.hpp>
14 
15 //#include <vrvCore/DtSimDataProcessor.h>
18 
21 #include <vrvCore/DtSimEntryObjectAgent.hpp>
23 
25 #include <vlutil/vlPerformanceStats.h>
26 
27 namespace makVrv
28 {
29  class DtEntityStateListener;
30 
31  namespace DT_PROTOCOL_NAMESPACE
32  {
33  class DtEntityExistenceListener;
34  class DtStateListenerInterface;
35  }
36 }
37 
38 namespace makVrf
39 {
40  class DtNetworkMessageInterfaceHandlerAgent;
41 
42  namespace VRF_PROTOCOL_NAMESPACE
43  {
46  {
47  public:
48 
51 
54 
57 
60 
62  void postDrainInput();
63 
65  void setObjectUpdateRate(makVrv::DtUniqueID uniqueId, makVrv::DtSimEntryUpdater::UpdateRate rate);
66 
68  void forceObjectUpdate(makVrv::DtUniqueID uniqueId);
69 
71  void entityDiscovered(makVrv::DT_PROTOCOL_NAMESPACE::DtVrlinkEntityStateListener& listener);
72 
74  void entityToBeDeleted(makVrv::DtEntityStateListener& listener);
75 
77  virtual void createAndSendState(makVrv::DtEntityStateListener& listener,
78  makVrv::DtSimStateObjectAgent& objectDriver);
79  virtual void updateExtendedState(makVrv::DT_PROTOCOL_NAMESPACE::DtVrlinkEntityStateListener& listener);
80  virtual void setStateProperties(makVrv::DT_PROTOCOL_NAMESPACE::DtVrlinkEntityStateListener& listener,
81  DtVrfNetworkUpdateObjectDataState& state, const DtRwProperties* defaultStateProperties);
82  virtual void rangeItemsFrom(const DtExtEntityStateRepository& esr, std::vector<DtRangeItem>&);
83 
86  virtual void addRangeRingItemToVisuals(const makVrf::DtRangeItem& item);
87 
88  boost::signal<void (makVrv::DtUniqueID, DtVrfNetworkUpdateObjectDataState&) > signal_stateUpdated;
89 
92  boost::signal<void (const DtExtEntityStateRepository&, std::vector<makVrf::DtRangeItem>&) > signal_addAdditionalRangeRingItems;
93 
94  virtual void setupState(const DtExtEntityStateRepository&, DtVrfNetworkUpdateObjectDataState&);
95 
96  protected:
97 
99  static void postDrainInput(void* usr);
100  void slot_postUpdateCallback(makVrv::DtEntityStateListener& listener);
101 
102  virtual void slot_modelSetChanged();
103 
104  protected:
105 
106  //A Listener and a driver which will be updated with it.
108  {
109  public:
110 
112  DtVrfObjectDataStateObjectAgent& driver, DtVrfObjectDataStateProcessor&);
113 
115 
117 
118  //Are the updaters equal
119  bool operator==(const VrfObjectDataStateUpdater& orig) const;
120 
122  void update(double timeT);
123 
124  protected:
125 
127  DtVrfObjectDataStateObjectAgent* myObjectAgent;
129  };
130 
131  typedef std::set<makVrv::DtUniqueID> EntityIdList;
132 
134  {
136  DtVrfObjectDataStateObjectAgent* myAgent;
138  };
139 
140  typedef std::map<makVrv::DtUniqueID,EntitySimDataInstance > EntityAgentMap;
141 
143  typedef std::map<makVrv::DtSimEntryUpdater::UpdateRate,EntityUpdaterGroup>
145 
146  protected:
147 
149 
152  DtTimedSection myTimer;
153  makVrv::DtSimEntryObjectAgent* mySimEntryAgent;
154 
158 
159  std::map<makVrv::DtUniqueID, DtVrfNetworkUpdateObjectDataState> myCache;
160 
163 
164  mutable std::set<std::string> myRangeLabels;
165  std::map<makVrv::DtUniqueID, DtString> myExtendedLabels;
166  DtNetworkMessageInterfaceHandlerAgent* myNetworkMessageInterfaceHandlerAgent;
167 
169  typedef std::map<std::string, std::pair<DtRwProperties*, int> > BaseStateMap;
171 
175  };
176 
178  {
179  public:
182 
184 
187  static void registerInstance(makVrv::DT_PROTOCOL_NAMESPACE::DtVrlinkConnection& conn,
189 
190  virtual DtVrfObjectDataStateProcessor* create(makVrv::DT_PROTOCOL_NAMESPACE::DtVrlinkConnection& conn, int sessionId, int messageVersion);
191  };
192  }
193 }

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)