VR-Forces 4.8 Class Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
iffSimDataProcessor.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 
15 
20 #include <vlutil/vlPerformanceStats.h>
21 
22 namespace makVrv
23 {
24  class DtSimEntryObjectAgent;
25 
26  namespace DT_PROTOCOL_NAMESPACE
27  {
28  class DtVrlinkConnection;
30  }
31 }
32 
33 namespace makVrf
34 {
35  class DtIffStateObjectAgent;
36 
37  namespace VRF_PROTOCOL_NAMESPACE
38  {
39  class DtIffExistenceListener;
40  class DtVrlinkIffStateListener;
41 
44  {
45  public:
48 
51 
54 
56  virtual ~DtIffSimDataProcessor();
57 
59  virtual void postDrainInput();
60 
62  virtual void setObjectUpdateRate(makVrv::DtUniqueID uniqueId, makVrv::DtSimEntryUpdater::UpdateRate rate);
63 
65  virtual void forceObjectUpdate(makVrv::DtUniqueID uniqueId);
66 
68  virtual void iffDiscovered(DtVrlinkIffStateListener& listener);
69 
71  virtual void iffToBeDeleted(DtVrlinkIffStateListener& listener);
72 
73  virtual void entityToBeDeleted(makVrv::DT_PROTOCOL_NAMESPACE::DtVrlinkEntityStateListener& listener);
74 
76  virtual void createAndSendState(makVrv::DtElementID entity,
77  DtIffStateObjectAgent& objectDriver);
78  virtual void setState(DtVrlinkIffStateListener& listener,
79  DtIffStateDataEntry& state);
80 
81  boost::signals2::signal<void (makVrv::DtUniqueID, DtIffStateData)> signal_stateUpdated;
82  boost::signals2::signal<void (makVrv::DtUniqueID, DtIffStateData)> signal_stateAdded;
83 
84  protected:
85 
86  static void postDrainInput(void* usr);
87 
88  virtual void slot_postUpdateCallback(DtVrlinkIffStateListener&);
89 
90  protected:
91 
92  //A Listener and a driver which will be updated with it.
94  {
95  public:
96 
98  DtIffStateObjectAgent& driver, DtIffSimDataProcessor& processor);
99 
100  IffStateUpdater(const IffStateUpdater& orig);
101 
102  IffStateUpdater& operator=(const IffStateUpdater& orig);
103 
104  //Are the updaters equal
105  bool operator==(const IffStateUpdater& orig) const;
106 
108  void update(double timeT);
109 
110  protected:
111 
113  DtIffStateObjectAgent* myObjectAgent;
115  };
116 
117  typedef std::vector<makVrv::DtUniqueID> IffIdList;
118 
119  typedef std::map<DtString, DtVrlinkIffStateListener*> IffListeners;
121  {
123  DtIffStateObjectAgent* myAgent;
124  std::string myHostId;
126  };
127 
128  typedef std::map<makVrv::DtUniqueID,IffSimDataInstance > IffAgentMap;
129 
131  typedef std::map<makVrv::DtSimEntryUpdater::UpdateRate,IffUpdaterGroup>
133 
134  protected:
136 
139  DtTimedSection myTimer;
140  makVrv::DtSimEntryObjectAgent* mySimEntryAgent;
141 
145 
146  typedef std::map<makVrv::DtUniqueID, DtIffStateData> IffStates;
148  };
149 
151  {
152  public:
155 
157 
160  static void registerInstance(makVrv::DT_PROTOCOL_NAMESPACE::DtVrlinkConnection& conn,
161  DtIffSimDataProcessorCreator* instance);
162 
164  };
165  }
166 }
Contains makVrv::DtSimDataProcessorInterface class.
boost::signals2::signal< void(makVrv::DtUniqueID, DtIffStateData)> signal_stateAdded
Definition: iffSimDataProcessor.h:82
Virtual base class.
Definition: DtVirtualBaseClass.h:22
#define VRF_PROTOCOL_EXPORT
Definition: vrfProtocol.h:24
DtIffStateObjectAgent * myObjectAgent
Definition: iffSimDataProcessor.h:113
IffAgentMap myIffAgents
Definition: iffSimDataProcessor.h:142
UpdateRate
Definition: DtSimEntryUpdater.h:34
makVrv::DtBalancedUpdater< IffStateUpdater > IffUpdaterGroup
Definition: iffSimDataProcessor.h:130
DtIffExistenceListener & myListener
Definition: iffSimDataProcessor.h:138
Definition: iffStateData.h:25
IffListeners myListeners
Definition: iffSimDataProcessor.h:122
std::map< makVrv::DtUniqueID, DtIffStateData > IffStates
Definition: iffSimDataProcessor.h:146
IffUpdateGroupMap myRefreshRateGroups
Definition: iffSimDataProcessor.h:143
DT_DLL_terrainCS bool operator==(const DtDegMinSec &lhs, const DtDegMinSec &rhs)
DtUniqueID DtElementID
The ElementID is a specific type of unique ID used to represent VR-Vantage uniquely defined elements...
Definition: DtUniqueID.h:26
std::map< makVrv::DtSimEntryUpdater::UpdateRate, IffUpdaterGroup > IffUpdateGroupMap
Definition: iffSimDataProcessor.h:132
#define VRF_PROTOCOL_NAMESPACE
Definition: vrfDis.h:18
std::map< DtString, DtVrlinkIffStateListener * > IffListeners
Definition: iffSimDataProcessor.h:119
Class to manage disconnection of boost connections on deletion.
Definition: DtSignalConnectionManager.h:24
The reflected iff list used by the driver to listen to reflected iff objects.
Definition: iffExistenceListener.h:60
DtBalanacedUpdater updates updatee classes at a desired rate in a fair (each instance gets the same n...
Definition: DtBalancedUpdater.h:29
IffStates myIffStates
Definition: iffSimDataProcessor.h:147
The protocol specific processor for iff sim data.
Definition: iffSimDataProcessor.h:43
boost::signals2::signal< void(makVrv::DtUniqueID, DtIffStateData)> signal_stateUpdated
Definition: iffSimDataProcessor.h:81
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
std::map< makVrv::DtUniqueID, IffSimDataInstance > IffAgentMap
Definition: iffSimDataProcessor.h:128
makVrv::DtSignalConnectionManager myConnections
Definition: iffSimDataProcessor.h:135
DtIffStateObjectAgent * myAgent
Definition: iffSimDataProcessor.h:123
#define DT_PROTOCOL_NAMESPACE
Make VR-Vantage VRLink code export with library #ifdef DL_DLL_IGCONVRLINK #undef DL_DLL_IGCONVRLINK #...
Definition: export.h:32
makVrv::DtSimEntryUpdater::UpdateRate myRate
Definition: iffSimDataProcessor.h:125
makVrv::DtSimEntryObjectAgent * mySimEntryAgent
Definition: iffSimDataProcessor.h:140
Contains makVrv::DtSimEntryUpdater class.
Contains makVrv::DtBalancedUpdater class.
Base class to provide boost signal/slot management.
DtIffSimDataProcessor * myProcessor
Definition: iffSimDataProcessor.h:114
IffIdList myForceUpdateList
Definition: iffSimDataProcessor.h:144
makVrv::DT_PROTOCOL_NAMESPACE::DtVrlinkConnection & mySimulation
Definition: iffSimDataProcessor.h:137
DtTimedSection myTimer
Definition: iffSimDataProcessor.h:139
std::string myHostId
Definition: iffSimDataProcessor.h:124
makVrv::DtElementID myEntity
Definition: iffSimDataProcessor.h:112
std::vector< makVrv::DtUniqueID > IffIdList
Definition: iffSimDataProcessor.h:117

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)