VR-Forces 4.7 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  virtual bool keyDataChanged(makVrv::DtEntityStateListener& listener, const DtVrfNetworkUpdateObjectDataState& data) const;
97 
98  protected:
99 
101  static void postDrainInput(void* usr);
102  void slot_postUpdateCallback(makVrv::DtEntityStateListener& listener);
103 
104  virtual void slot_modelSetChanged();
105 
106  protected:
107 
108  //A Listener and a driver which will be updated with it.
110  {
111  public:
112 
114  DtVrfObjectDataStateObjectAgent& driver, DtVrfObjectDataStateProcessor&);
115 
117 
119 
120  //Are the updaters equal
121  bool operator==(const VrfObjectDataStateUpdater& orig) const;
122 
124  void update(double timeT);
125 
126  protected:
127 
129  DtVrfObjectDataStateObjectAgent* myObjectAgent;
131  };
132 
133  typedef std::set<makVrv::DtUniqueID> EntityIdList;
134 
136  {
138  DtVrfObjectDataStateObjectAgent* myAgent;
140  };
141 
142  typedef std::map<makVrv::DtUniqueID,EntitySimDataInstance > EntityAgentMap;
143 
145  typedef std::map<makVrv::DtSimEntryUpdater::UpdateRate,EntityUpdaterGroup>
147 
148  protected:
149 
151 
154  DtTimedSection myTimer;
155  makVrv::DtSimEntryObjectAgent* mySimEntryAgent;
156 
160 
161  std::map<makVrv::DtUniqueID, DtVrfNetworkUpdateObjectDataState> myCache;
162 
165 
166  mutable std::set<std::string> myRangeLabels;
167  std::map<makVrv::DtUniqueID, DtString> myExtendedLabels;
168  DtNetworkMessageInterfaceHandlerAgent* myNetworkMessageInterfaceHandlerAgent;
169 
171  typedef std::map<std::string, std::pair<DtRwProperties*, int> > BaseStateMap;
173 
177 
179  };
180 
182  {
183  public:
186 
188 
191  static void registerInstance(makVrv::DT_PROTOCOL_NAMESPACE::DtVrlinkConnection& conn,
193 
194  virtual DtVrfObjectDataStateProcessor* create(makVrv::DT_PROTOCOL_NAMESPACE::DtVrlinkConnection& conn, int sessionId, int messageVersion);
195  };
196  }
197 }

Document ID: Generated on Fri Apr 26 21:53:14 EDT 2019 from SVN revision 197883
Copyright © 2005-2019 VT MAK. All Rights Reserved (www.mak.com)