VR-Forces 4.10 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 
90  boost::signals2::signal<void (const DtExtEntityStateRepository&, std::vector<makVrf::DtRangeItem>&) > signal_addAdditionalRangeRingItems;
91 
92  virtual void setupState(const DtExtEntityStateRepository&, DtVrfNetworkUpdateObjectDataState&);
93 
94  virtual bool keyDataChanged(makVrv::DtEntityStateListener& listener, const DtVrfNetworkUpdateObjectDataState& data) const;
95 
96  virtual void slot_visualizerCreationDisabled(bool b, int type);
97 
98  protected:
99 
101  static void postDrainInput(void* usr);
102  void slot_postUpdateCallback(makVrv::DtEntityStateListener& listener);
103 
104  virtual void slot_modelSetChanged();
105  virtual void slot_markingDecalSet(makVrv::DT_PROTOCOL_NAMESPACE::DtVrlinkEntityStateListener*);
106 
107  protected:
108 
109  //A Listener and a driver which will be updated with it.
111  {
112  public:
113 
115  DtVrfObjectDataStateObjectAgent& driver, DtVrfObjectDataStateProcessor&);
116 
118 
120 
121  //Are the updaters equal
122  bool operator==(const VrfObjectDataStateUpdater& orig) const;
123 
125  void update(double timeT);
126 
127  protected:
128 
130  DtVrfObjectDataStateObjectAgent* myObjectAgent;
132  };
133 
134  typedef std::set<makVrv::DtUniqueID> EntityIdList;
135 
137  {
139  DtVrfObjectDataStateObjectAgent* myAgent;
141  };
142 
143  typedef std::map<makVrv::DtUniqueID,EntitySimDataInstance > EntityAgentMap;
144 
146  typedef std::map<makVrv::DtSimEntryUpdater::UpdateRate,EntityUpdaterGroup>
148 
149  protected:
150 
152 
155  DtTimedSection myTimer;
156  makVrv::DtSimEntryObjectAgent* mySimEntryAgent;
157 
161 
162  std::map<makVrv::DtUniqueID, DtVrfNetworkUpdateObjectDataState> myCache;
163 
166 
167  mutable std::set<std::string> myRangeLabels;
168  std::map<makVrv::DtUniqueID, DtString> myExtendedLabels;
169  DtNetworkMessageInterfaceHandlerAgent* myNetworkMessageInterfaceHandlerAgent;
170 
172  typedef std::map<std::string, std::pair<DtRwProperties*, int> > BaseStateMap;
174 
178 
181  };
182 
184  {
185  public:
188 
190 
193  static void registerInstance(makVrv::DT_PROTOCOL_NAMESPACE::DtVrlinkConnection& conn,
195 
196  virtual DtVrfObjectDataStateProcessor* create(makVrv::DT_PROTOCOL_NAMESPACE::DtVrlinkConnection& conn, int sessionId, int messageVersion);
197  };
198  }
199 }
Contains makVrv::DtSimDataProcessorInterface class.
Virtual base class.
Definition: DtVirtualBaseClass.h:19
DtNetworkMessageInterfaceHandlerAgent * myNetworkMessageInterfaceHandlerAgent
Definition: vrfObjectDataStateProcessor.h:169
#define VRF_PROTOCOL_EXPORT
Definition: vrfProtocol.h:24
std::map< makVrv::DtUniqueID, DtVrfNetworkUpdateObjectDataState > myCache
Definition: vrfObjectDataStateProcessor.h:162
std::set< makVrv::DtUniqueID > EntityIdList
Definition: vrfObjectDataStateProcessor.h:134
EntityUpdateGroupMap myRefreshRateGroups
Definition: vrfObjectDataStateProcessor.h:159
DtVrfObjectDataStateObjectAgent * myObjectAgent
Definition: vrfObjectDataStateProcessor.h:130
makVrv::DtSignalConnectionManager myConnections
Definition: vrfObjectDataStateProcessor.h:151
UpdateRate
Definition: DtSimEntryUpdater.h:31
std::map< makVrv::DtSimEntryUpdater::UpdateRate, EntityUpdaterGroup > EntityUpdateGroupMap
Definition: vrfObjectDataStateProcessor.h:147
DT_DLL_VRFGUICORE bool operator==(const std::vector< makArchives::DtEnvironmentRecord::DtElevationalConfigurationRecord > &lhs, const std::vector< makArchives::DtEnvironmentRecord::DtElevationalConfigurationRecord > &rhs)
The protocol specific processor for entity sim data.
Definition: vrfObjectDataStateProcessor.h:45
DtVrfObjectDataStateProcessor * myProcessor
Definition: vrfObjectDataStateProcessor.h:131
The class that is the interface between the GUI and the back-end.
Definition: vrfObjectDataState.h:63
std::set< std::string > myRangeLabels
Definition: vrfObjectDataStateProcessor.h:167
makVrv::DtEntityStateListener * myListener
Definition: vrfObjectDataStateProcessor.h:129
int myMessageVersion
Definition: vrfObjectDataStateProcessor.h:165
makVrv::DtSimEntryUpdater::UpdateRate myRate
Definition: vrfObjectDataStateProcessor.h:140
makVrv::DtBalancedUpdater< VrfObjectDataStateUpdater > EntityUpdaterGroup
Definition: vrfObjectDataStateProcessor.h:145
#define VRF_PROTOCOL_NAMESPACE
Definition: vrfDis.h:18
DtExtEntityStateRepository class extends the DtExtEntityBaseStateRepository to be able to handle exte...
Definition: extEntityStateRepository.h:25
BaseStateMap myBaseStateMap
Definition: vrfObjectDataStateProcessor.h:173
Class to manage disconnection of boost connections on deletion.
Definition: DtSignalConnectionManager.h:20
DtTimedSection myTimer
Definition: vrfObjectDataStateProcessor.h:155
DtBalanacedUpdater updates updatee classes at a desired rate in a fair (each instance gets the same n...
Definition: DtBalancedUpdater.h:26
makVrv::DT_PROTOCOL_NAMESPACE::DtVrlinkConnection & mySimulation
Definition: vrfObjectDataStateProcessor.h:153
DtTime myLastStatePropertyUpdate
Time at which we last got a state property update.
Definition: vrfObjectDataStateProcessor.h:176
std::map< makVrv::DtUniqueID, EntitySimDataInstance > EntityAgentMap
Definition: vrfObjectDataStateProcessor.h:143
unsigned long long DtUniqueID
Definition: DtUniqueID.h:19
Methods a data processor needs to implement to be considered a data processor.
Definition: DtSimDataProcessorInterface.h:24
std::map< std::string, std::pair< DtRwProperties *, int > > BaseStateMap
Local map copy of entity base state properties to prevent need of getting lock.
Definition: vrfObjectDataStateProcessor.h:172
EntityIdList myForceUpdateForCachedItem
Definition: vrfObjectDataStateProcessor.h:179
makVrv::DtSimEntryObjectAgent * mySimEntryAgent
Definition: vrfObjectDataStateProcessor.h:156
std::map< makVrv::DtUniqueID, DtString > myExtendedLabels
Definition: vrfObjectDataStateProcessor.h:168
#define DT_PROTOCOL_NAMESPACE
Make VR-Vantage VRLink code export with library #ifdef DL_DLL_IGCONVRLINK #undef DL_DLL_IGCONVRLINK #...
Definition: export.h:32
Contains makVrv::DtBalancedUpdater class.
int myShowBoundingVolumeCount
Definition: vrfObjectDataStateProcessor.h:180
Base class to provide boost signal/slot management.
makVrv::DtEntityStateListener * myListener
Definition: vrfObjectDataStateProcessor.h:138
makVrv::DT_PROTOCOL_NAMESPACE::DtEntityExistenceListener & myListener
Definition: vrfObjectDataStateProcessor.h:154
Contains the DtExtEntityStateRepository class.
int mySessionId
Definition: vrfObjectDataStateProcessor.h:164
Definition: vrfObjectDataState.h:34
The HLA 13 reflected entity list used by the driver to listen to reflected entities.
Definition: DtEntityExistenceListener.h:69
A list of properties.
Definition: rwProperties.h:126
DtClock myClock
Definition: vrfObjectDataStateProcessor.h:177
EntityAgentMap myEntityAgents
Definition: vrfObjectDataStateProcessor.h:158
DtVrfObjectDataStateObjectAgent * myAgent
Definition: vrfObjectDataStateProcessor.h:139
Contains makVrv::DtEntityExistenceListener class.
EntityIdList myForceUpdateList
Definition: vrfObjectDataStateProcessor.h:160
DtEntityStateListener.
Definition: DtEntityStateListener.h:44

Document ID: Generated on Tue Sep 21 17:42:52 EDT 2021 from SVN revision 234861
Copyright © 2005-2021 MAK Technologies. All Rights Reserved (www.mak.com)