VR-Forces 4.6 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::signal<void (makVrv::DtUniqueID, DtIffStateData)> signal_stateUpdated;
82  boost::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 }

Document ID: Generated on Thu Apr 12 03:15:37 EDT 2018 from SVN revision 187986
Copyright © 2005-2018 VT MÄK. All Rights Reserved (www.mak.com)