VR-Forces Development_Version 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>&) const;
81 
82  boost::signal<void (makVrv::DtUniqueID, DtVrfObjectDataState&) > signal_stateUpdated;
83 
84  void setupState(const DtExtEntityStateRepository&, DtVrfObjectDataState&) const;
85 
86  protected:
87 
89  static void postDrainInput(void* usr);
90  void slot_postUpdateCallback(makVrv::DtEntityStateListener& listener);
91 
92  protected:
93 
94  //A Listener and a driver which will be updated with it.
96  {
97  public:
98 
100  DtVrfObjectDataStateObjectAgent& driver, DtVrfObjectDataStateProcessor&);
101 
103 
105 
106  //Are the updaters equal
107  bool operator==(const VrfObjectDataStateUpdater& orig) const;
108 
110  void update(double timeT);
111 
112  protected:
113 
115  DtVrfObjectDataStateObjectAgent* myObjectAgent;
117  };
118 
119  typedef std::set<makVrv::DtUniqueID> EntityIdList;
120 
122  {
124  DtVrfObjectDataStateObjectAgent* myAgent;
126  };
127 
128  typedef std::map<makVrv::DtUniqueID,EntitySimDataInstance > EntityAgentMap;
129 
131  typedef std::map<makVrv::DtSimEntryUpdater::UpdateRate,EntityUpdaterGroup>
133 
134  protected:
135 
137 
140  DtTimedSection myTimer;
141  makVrv::DtSimEntryObjectAgent* mySimEntryAgent;
142 
146 
147  std::map<makVrv::DtUniqueID, DtVrfObjectDataState> myCache;
148 
151 
152  mutable std::set<std::string> myRangeLabels;
153  std::map<makVrv::DtUniqueID, DtString> myExtendedLabels;
154  DtNetworkMessageInterfaceHandlerAgent* myNetworkMessageInterfaceHandlerAgent;
155  };
156  }
157 }

Document ID: Generated on Tue Mar 8 22:13:38 EST 2016 from SVN revision 162938
Copyright © 2005-2015 VT MÄK. All Rights Reserved (www.mak.com)