VR-Forces Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
extendedStateDataProcessor.h
Go to the documentation of this file.
1 /******************************************************************************
2 ** Copyright (c) 2021 MAK Technologies, Inc.
3 ** All rights reserved.
4 ******************************************************************************/
5 
11 
12 #pragma once
13 
15 
16 #include <vrfGuiCore/DtExtendedStateDataObjectAgent.hpp>
17 
20 #include <vrvCore/DtSimEntryObjectAgent.hpp>
22 #include <vlutil/vlPerformanceStats.h>
23 
24 #include <boost/signals2.hpp>
25 
26 namespace makVrv
27 {
28  class DtBaseConnection;
29 }
30 
31 namespace makVrf
32 {
33  class DtStateData;
34  class DtStateDataManager;
35  struct DtSimpleTypedDictionary;
36 
39  {
40  public:
41 
43  static DtExtendedStateDataProcessor* findInstance(makVrv::DtBaseConnection& sim);
44 
46  static void registerInstance(makVrv::DtBaseConnection& sim,DtExtendedStateDataProcessor*);
47 
50 
53 
55  void postDrainInput();
56 
58  void setObjectUpdateRate(makVrv::DtUniqueID uniqueId, makVrv::DtSimEntryUpdater::UpdateRate rate);
59 
61  void forceObjectUpdate(makVrv::DtUniqueID uniqueId);
62 
64  virtual void createAndSendState(makVrv::DtUniqueID id, makVrv::DtSimStateObjectAgent& objectDriver);
65 
69  virtual DtSimpleTypedDictionary& extendedStateFor(makVrv::DtUniqueID id, bool forceUpdate = true);
70 
72  virtual bool hasStateFor(makVrv::DtUniqueID) const;
74  virtual DtExtendedStateData stateFor(makVrv::DtUniqueID id) const;
75 
76  boost::signals2::signal<void (makVrv::DtUniqueID, DtExtendedStateData&) > signal_stateUpdated;
77 
78  protected:
79 
80  virtual void tick();
81  virtual void itemToBeDestroyed(const DtStateData*);
82 
83  protected:
84 
85  //A Listener and a driver which will be updated with it.
87  {
88  public:
89 
90  ExtendedStateDataUpdater(makVrv::DtUniqueID id, DtExtendedStateDataObjectAgent& driver,
91  DtExtendedStateDataProcessor& processor);
92 
94 
95  ExtendedStateDataUpdater& operator=(const ExtendedStateDataUpdater& orig);
96 
97  //Are the updaters equal
98  bool operator==(const ExtendedStateDataUpdater& orig) const;
99 
101  void update(double timeT);
102 
103  protected:
105  DtExtendedStateDataObjectAgent* myObjectAgent;
107  };
108 
109  typedef std::vector<makVrv::DtUniqueID> ExtendedStateDataIdList;
110 
112  {
114  DtExtendedStateDataObjectAgent* myAgent;
117  };
118 
119  typedef std::map<makVrv::DtUniqueID,ExtendedStateDataInstance > ExtendedStateDataAgentMap;
120 
122  typedef std::map<makVrv::DtSimEntryUpdater::UpdateRate,ExtededStateDataUpdaterGroup>
124 
125  protected:
126 
128 
131  makVrv::DtSimEntryObjectAgent* mySimEntryAgent;
132 
136 
138  };
139 }
Contains makVrv::DtSimDataProcessorInterface class.
Definition: extendedStateDataProcessor.h:86
The protocol specific processor for entity sim data.
Definition: extendedStateDataProcessor.h:38
makVrv::DtUniqueID myId
Definition: extendedStateDataProcessor.h:113
DtExtendedStateDataObjectAgent * myAgent
Definition: extendedStateDataProcessor.h:114
UpdateRate
Definition: DtSimEntryUpdater.h:31
ExtendedStateDataUpdateGroupMap myRefreshRateGroups
Definition: extendedStateDataProcessor.h:134
std::map< makVrv::DtUniqueID, ExtendedStateDataInstance > ExtendedStateDataAgentMap
Definition: extendedStateDataProcessor.h:119
DT_DLL_VRFGUICORE bool operator==(const std::vector< makArchives::DtEnvironmentRecord::DtElevationalConfigurationRecord > &lhs, const std::vector< makArchives::DtEnvironmentRecord::DtElevationalConfigurationRecord > &rhs)
boost::signals2::signal< void(makVrv::DtUniqueID, DtExtendedStateData &) > signal_stateUpdated
Definition: extendedStateDataProcessor.h:76
DtExtendedStateDataObjectAgent * myObjectAgent
Definition: extendedStateDataProcessor.h:105
The DtBaseConnection is an abstract class.
Definition: DtBaseConnection.h:35
makVrv::DtUniqueID myId
Definition: extendedStateDataProcessor.h:104
The overall structure of the DtStateData mechanism is: The DtStateData contains a list of double buff...
Definition: stateData.h:339
Definition: simpleTypedDictionary.h:36
makVrv::DtBaseConnection & mySimulation
Definition: extendedStateDataProcessor.h:129
ExtendedStateDataIdList myForceUpdateList
Definition: extendedStateDataProcessor.h:135
Class to manage disconnection of boost connections on deletion.
Definition: DtSignalConnectionManager.h:20
DtExtendedStateData myStateData
Definition: extendedStateDataProcessor.h:116
DtBalanacedUpdater updates updatee classes at a desired rate in a fair (each instance gets the same n...
Definition: DtBalancedUpdater.h:26
makVrv::DtSignalConnectionManager myConnections
Definition: extendedStateDataProcessor.h:127
Definition: extendedStateDataProcessor.h:111
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
makVrv::DtBalancedUpdater< ExtendedStateDataUpdater > ExtededStateDataUpdaterGroup
Definition: extendedStateDataProcessor.h:121
std::vector< makVrv::DtUniqueID > ExtendedStateDataIdList
Definition: extendedStateDataProcessor.h:109
DtTimedSection myTimer
Definition: extendedStateDataProcessor.h:130
DtExtendedStateDataProcessor * myProcessor
Definition: extendedStateDataProcessor.h:106
Contains makVrv::DtBalancedUpdater class.
#define DT_DLL_vrfGuiNetworkCommon
This file is used to determine how to build.
Definition: vrfGuiNetworkCommonDefines.h:24
Base class to provide boost signal/slot management.
makVrv::DtSimEntryObjectAgent * mySimEntryAgent
Definition: extendedStateDataProcessor.h:131
makVrv::DtSimEntryUpdater::UpdateRate myRate
Definition: extendedStateDataProcessor.h:115
std::map< makVrv::DtSimEntryUpdater::UpdateRate, ExtededStateDataUpdaterGroup > ExtendedStateDataUpdateGroupMap
Definition: extendedStateDataProcessor.h:123
Definition: extendedStateData.h:26
DtStateDataManager * myStateDataManager
Definition: extendedStateDataProcessor.h:137
ExtendedStateDataAgentMap myExtendedStateDataAgents
Definition: extendedStateDataProcessor.h:133
This class holds the state data that represents each simulation object in the system.
Definition: stateDataManager.h:73

Document ID: Generated on Wed Mar 27 22:49:11 EDT 2024 from SVN revision 264633
Copyright © 2005-2024 MAK Technologies. All Rights Reserved (www.mak.com)