VR-Forces 4.8 Class Documentation
 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) 2014 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 DtEntityExistenceListener;
38 
42  {
43  public:
44 
46  static DtEntitySimDataProcessor* findInstance(DtVrlinkConnection& sim);
47 
49  static void registerInstance(DtVrlinkConnection& sim,DtEntitySimDataProcessor*);
50 
53 
55  virtual ~DtEntitySimDataProcessor();
56 
58  void postDrainInput();
59 
61  virtual void setObjectUpdateRate(DtUniqueID uniqueId, DtSimEntryUpdater::UpdateRate rate);
62 
64  virtual void forceObjectUpdate(DtUniqueID uniqueId);
65 
67  virtual void entityDiscovered(DtVrlinkEntityStateListener& listener);
68 
70  virtual void entityToBeDeleted(DtEntityStateListener& listener);
71 
73  virtual void createAndSendState(DtEntityStateListener& listener,
74  DtEntityStateObjectAgent& objectDriver);
75 
76  protected:
77 
79  static void postDrainInput(void* usr);
80  virtual void slot_postUpdateCallback(DtEntityStateListener&);
81  virtual void setState(DtVrlinkEntityStateListener& listener, DtVrlinkSimulatedEntityState& state);
82 
83  protected:
84 
85  //A Listener and a driver which will be updated with it.
87  {
88  public:
89 
91  DtEntityStateObjectAgent& driver, DtEntitySimDataProcessor& processor);
92 
94 
95  EntityStateUpdater& operator=(const EntityStateUpdater& orig);
96 
97  //Are the updaters equal
98  bool operator==(const EntityStateUpdater& orig) const;
99 
101  void update(double timeT);
102 
103  protected:
104 
106  DtEntityStateObjectAgent* myObjectAgent;
108  };
109 
110  typedef std::vector<DtUniqueID> EntityIdList;
111 
113  {
115  DtEntityStateObjectAgent* myAgent;
117  };
118 
119  typedef std::map<DtUniqueID,EntitySimDataInstance > EntityAgentMap;
120 
122  typedef std::map<DtSimEntryUpdater::UpdateRate,EntityUpdaterGroup>
124 
125  protected:
126 
128 
131  DtTimedSection myTimer;
132  DtSimEntryObjectAgent* mySimEntryAgent;
133 
137 
138  };
139  }
140 }
141 
142 #endif
143 
std::map< DtUniqueID, EntitySimDataInstance > EntityAgentMap
Definition: DtEntitySimDataProcessor.h:119
Contains makVrv::DtSimDataProcessorInterface class.
The protocol specific processor for entity sim data.
Definition: DtEntitySimDataProcessor.h:41
DtEntityStateObjectAgent * myObjectAgent
Definition: DtEntitySimDataProcessor.h:106
UpdateRate
Definition: DtSimEntryUpdater.h:34
DtEntityStateListener * myListener
Definition: DtEntitySimDataProcessor.h:105
DtSimEntryObjectAgent * mySimEntryAgent
Definition: DtEntitySimDataProcessor.h:132
DtSimEntryUpdater::UpdateRate myRate
Definition: DtEntitySimDataProcessor.h:116
std::map< DtSimEntryUpdater::UpdateRate, EntityUpdaterGroup > EntityUpdateGroupMap
Definition: DtEntitySimDataProcessor.h:123
DtEntityStateListener * myListener
Definition: DtEntitySimDataProcessor.h:114
#define DL_DLL_IGCONVRLINK
Definition: dllExport.h:26
DtBalancedUpdater< EntityStateUpdater > EntityUpdaterGroup
Definition: DtEntitySimDataProcessor.h:121
EntityIdList myForceUpdateList
Definition: DtEntitySimDataProcessor.h:136
DtEntitySimDataProcessor * myProcessor
Definition: DtEntitySimDataProcessor.h:107
DtVrlinkConnection & mySimulation
Definition: DtEntitySimDataProcessor.h:129
EntityAgentMap myEntityAgents
Definition: DtEntitySimDataProcessor.h:134
DtTimedSection myTimer
Definition: DtEntitySimDataProcessor.h:131
Class to manage disconnection of boost connections on deletion.
Definition: DtSignalConnectionManager.h:24
Contains makVrv::DtEntityState class.
DtSignalConnectionManager myConnections
Definition: DtEntitySimDataProcessor.h:127
DtBalanacedUpdater updates updatee classes at a desired rate in a fair (each instance gets the same n...
Definition: DtBalancedUpdater.h:29
unsigned long long DtUniqueID
Definition: DtUniqueID.h:22
Methods a data processor needs to implement to be considered a data processor.
Definition: DtSimDataProcessorInterface.h:24
EntityUpdateGroupMap myRefreshRateGroups
Definition: DtEntitySimDataProcessor.h:135
DtEntityExistenceListener & myListener
Definition: DtEntitySimDataProcessor.h:130
#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::DtSimEntryUpdater class.
Contains makVrv::DtBalancedUpdater class.
Base class to provide boost signal/slot management.
bool operator==(const DtTextureAtlasIndexParser::StringOrFloatAttrib &lhs, const DtTextureAtlasIndexParser::StringOrFloatAttrib &rhs)
needed for search comparison code
Definition: DtTextureAtlasIndexParser.h:153
The HLA 13 reflected entity list used by the driver to listen to reflected entities.
Definition: DtEntityExistenceListener.h:65
DtEntityStateObjectAgent * myAgent
Definition: DtEntitySimDataProcessor.h:115
std::vector< DtUniqueID > EntityIdList
Definition: DtEntitySimDataProcessor.h:110
Contains DLL export macros.
DtEntityStateRepository.
Definition: DtEntityStateListener.h:39

Document ID: Generated on Thu Aug 27 10:56:05 EDT 2020 from SVN revision 217100
Copyright © 2005-2020 MAK Technologies. All Rights Reserved (www.mak.com)