VR-Forces 4.5 Class Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator 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 rangeItemsFrom(const DtExtEntityStateRepository& esr, std::vector<DtRangeItem>&);
81 
84  virtual void addRangeRingItemToVisuals(const makVrf::DtRangeItem& item);
85 
86  boost::signal<void (makVrv::DtUniqueID, DtVrfObjectDataState&) > signal_stateUpdated;
87 
90  boost::signal<void (const DtExtEntityStateRepository&, std::vector<makVrf::DtRangeItem>&) > signal_addAdditionalRangeRingItems;
91 
92  virtual void setupState(const DtExtEntityStateRepository&, DtVrfObjectDataState&);
93 
94  protected:
95 
97  static void postDrainInput(void* usr);
98  void slot_postUpdateCallback(makVrv::DtEntityStateListener& listener);
99 
100  protected:
101 
102  //A Listener and a driver which will be updated with it.
104  {
105  public:
106 
108  DtVrfObjectDataStateObjectAgent& driver, DtVrfObjectDataStateProcessor&);
109 
111 
113 
114  //Are the updaters equal
115  bool operator==(const VrfObjectDataStateUpdater& orig) const;
116 
118  void update(double timeT);
119 
120  protected:
121 
123  DtVrfObjectDataStateObjectAgent* myObjectAgent;
125  };
126 
127  typedef std::set<makVrv::DtUniqueID> EntityIdList;
128 
130  {
132  DtVrfObjectDataStateObjectAgent* myAgent;
134  };
135 
136  typedef std::map<makVrv::DtUniqueID,EntitySimDataInstance > EntityAgentMap;
137 
139  typedef std::map<makVrv::DtSimEntryUpdater::UpdateRate,EntityUpdaterGroup>
141 
142  protected:
143 
145 
148  DtTimedSection myTimer;
149  makVrv::DtSimEntryObjectAgent* mySimEntryAgent;
150 
154 
155  std::map<makVrv::DtUniqueID, DtVrfObjectDataState> myCache;
156 
159 
160  mutable std::set<std::string> myRangeLabels;
161  std::map<makVrv::DtUniqueID, DtString> myExtendedLabels;
162  DtNetworkMessageInterfaceHandlerAgent* myNetworkMessageInterfaceHandlerAgent;
163  };
164 
166  {
167  public:
170 
172 
175  static void registerInstance(makVrv::DT_PROTOCOL_NAMESPACE::DtVrlinkConnection& conn,
177 
178  virtual DtVrfObjectDataStateProcessor* create(makVrv::DT_PROTOCOL_NAMESPACE::DtVrlinkConnection& conn, int sessionId, int messageVersion);
179  };
180  }
181 }

Document ID: Generated on Thu Mar 23 18:54:12 EDT 2017 from SVN revision 174804
Copyright © 2005-2017 VT MÄK. All Rights Reserved (www.mak.com)