VR-Forces 5.0.2 Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
DtEntitySimDataProcessor.h
Go to the documentation of this file.
1 /******************************************************************************
2 ** Copyright (c) 2021 MAK Technologies, Inc.
3 ** All rights reserved.
4 ******************************************************************************/
5 
9 
10 #ifndef DtVrlinkEntitySimDataProcessor_H_
11 #define DtVrlinkEntitySimDataProcessor_H_
12 
13 #include <vrvVrl/vrvVrl.h>
15 #include <vrvCore/DtEntityState.h>
19 
20 #include <vlutil/vlPerformanceStats.h>
21 
22 #include <boost/bind.hpp>
23 
24 #ifndef DT_PROTOCOL_NAMESPACE
25 #error Namespace Protocol Macro DT_PROTOCOL_NAMESPACE not defined.
26 #endif
27 
28 namespace makVrv
29 {
30  class DtEntityStateObjectAgent;
31  class DtSimEntryObjectAgent;
32  class DtEntityStateListener;
33 
34  namespace DT_PROTOCOL_NAMESPACE
35  {
36  class DtEntityElementProcessor;
38  class DtVrlinkConnection;
39 
43  {
44  public:
45 
47  static DtEntitySimDataProcessor* findInstance(DtVrlinkConnection& sim);
48 
50  static void registerInstance(DtVrlinkConnection& sim,DtEntitySimDataProcessor*);
51 
54 
56  virtual ~DtEntitySimDataProcessor();
57 
59  void postDrainInput();
60 
62  virtual void setObjectUpdateRate(DtUniqueID uniqueId, DtSimEntryUpdater::UpdateRate rate);
63 
65  virtual void forceObjectUpdate(DtUniqueID uniqueId);
66 
68  virtual void entityDiscovered(DtVrlinkEntityStateListener& listener);
69 
71  virtual void entityToBeDeleted(DtEntityStateListener& listener);
72 
74  virtual void createAndSendState(DtEntityStateListener& listener,
75  DtEntityStateObjectAgent& objectDriver);
76 
77  protected:
78 
80  static void postDrainInput(void* usr);
81  virtual void slot_postUpdateCallback(DtEntityStateListener&);
82  virtual void setState(DtVrlinkEntityStateListener& listener, DtVrlinkSimulatedEntityState& state);
83 
84  protected:
85 
86  //A Listener and a driver which will be updated with it.
88  {
89  public:
90 
92  DtEntityStateObjectAgent& driver, DtEntitySimDataProcessor& processor);
93 
95 
96  EntityStateUpdater& operator=(const EntityStateUpdater& orig);
97 
98  //Are the updaters equal
99  bool operator==(const EntityStateUpdater& orig) const;
100 
102  void update(double timeT);
103 
104  protected:
105 
107  DtEntityStateObjectAgent* myObjectAgent;
109  };
110 
111  typedef std::vector<DtUniqueID> EntityIdList;
112 
114  {
116  DtEntityStateObjectAgent* myAgent;
118  };
119 
120  typedef std::map<DtUniqueID,EntitySimDataInstance > EntityAgentMap;
121 
123  typedef std::map<DtSimEntryUpdater::UpdateRate,EntityUpdaterGroup>
125 
126  protected:
127 
129 
133  DtSimEntryObjectAgent* mySimEntryAgent;
134 
138 
139  };
140  }
141 }
142 
143 #endif
144 
std::map< DtUniqueID, EntitySimDataInstance > EntityAgentMap
Definition: DtEntitySimDataProcessor.h:120
Contains makVrv::DtSimDataProcessorInterface class.
The protocol specific processor for entity sim data.
Definition: DtEntitySimDataProcessor.h:42
DtEntityStateObjectAgent * myObjectAgent
Definition: DtEntitySimDataProcessor.h:107
UpdateRate
Definition: DtSimEntryUpdater.h:31
DtEntityStateListener * myListener
Definition: DtEntitySimDataProcessor.h:106
DtSimEntryObjectAgent * mySimEntryAgent
Definition: DtEntitySimDataProcessor.h:133
DtSimEntryUpdater::UpdateRate myRate
Definition: DtEntitySimDataProcessor.h:117
std::map< DtSimEntryUpdater::UpdateRate, EntityUpdaterGroup > EntityUpdateGroupMap
Definition: DtEntitySimDataProcessor.h:124
DtEntityStateListener * myListener
Definition: DtEntitySimDataProcessor.h:115
#define DL_DLL_IGCONVRLINK
Definition: dllExport.h:26
DtBalancedUpdater< EntityStateUpdater > EntityUpdaterGroup
Definition: DtEntitySimDataProcessor.h:122
EntityIdList myForceUpdateList
Definition: DtEntitySimDataProcessor.h:137
#define DT_PROTOCOL_NAMESPACE
Contains DLL export macros.
Definition: vrfDis.h:17
DtEntitySimDataProcessor * myProcessor
Definition: DtEntitySimDataProcessor.h:108
DtVrlinkConnection & mySimulation
Definition: DtEntitySimDataProcessor.h:130
EntityAgentMap myEntityAgents
Definition: DtEntitySimDataProcessor.h:135
DtTimedSection myTimer
Definition: DtEntitySimDataProcessor.h:132
Class to manage disconnection of boost connections on deletion.
Definition: DtSignalConnectionManager.h:20
DtEntityElementProcessor & myElementProcessor
Definition: DtEntitySimDataProcessor.h:131
Contains makVrv::DtVrlinkSimulatedEntityState class.
DtSignalConnectionManager myConnections
Definition: DtEntitySimDataProcessor.h:128
DtBalanacedUpdater updates updatee classes at a desired rate in a fair (each instance gets the same n...
Definition: DtBalancedUpdater.h:26
Methods a data processor needs to implement to be considered a data processor.
Definition: DtSimDataProcessorInterface.h:24
EntityUpdateGroupMap myRefreshRateGroups
Definition: DtEntitySimDataProcessor.h:136
Contains makVrv::DtSimEntryUpdater class.
Contains makVrv::DtBalancedUpdater class.
Base class to provide boost signal/slot management.
The DtEntityElementProcessor creates a reflected entity list, which calls on this class to create DtV...
Definition: DtEntityElementProcessor.h:48
bool operator==(const DtTextureAtlasIndexParser::StringOrFloatAttrib &lhs, const DtTextureAtlasIndexParser::StringOrFloatAttrib &rhs)
needed for search comparison code
Definition: DtTextureAtlasIndexParser.h:153
DtEntityStateObjectAgent * myAgent
Definition: DtEntitySimDataProcessor.h:116
std::vector< DtUniqueID > EntityIdList
Definition: DtEntitySimDataProcessor.h:111
Contains DLL export macros.
DtEntityStateListener.
Definition: DtEntityStateListener.h:132

Document ID: Generated on Sun Dec 4 20:22:03 EST 2022 from SVN revision 249613
Copyright © 2005-2021 MAK Technologies. All Rights Reserved (www.mak.com)