VR-Forces 4.3 Class Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator 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 
21 namespace makVrv
22 {
23  class DtSimEntryObjectAgent;
24 
25  namespace DT_PROTOCOL_NAMESPACE
26  {
27  class DtVrlinkConnection;
29  }
30 }
31 
32 namespace makVrf
33 {
34  class DtIffStateObjectAgent;
35 
36  namespace VRF_PROTOCOL_NAMESPACE
37  {
38  class DtIffExistenceListener;
39  class DtVrlinkIffStateListener;
40 
43  {
44  public:
47 
50 
53 
55  virtual ~DtIffSimDataProcessor();
56 
58  virtual void postDrainInput();
59 
61  virtual void setObjectUpdateRate(makVrv::DtUniqueID uniqueId, makVrv::DtSimEntryUpdater::UpdateRate rate);
62 
64  virtual void forceObjectUpdate(makVrv::DtUniqueID uniqueId);
65 
67  virtual void iffDiscovered(DtVrlinkIffStateListener& listener);
68 
70  virtual void iffToBeDeleted(DtVrlinkIffStateListener& listener);
71 
72  virtual void entityToBeDeleted(makVrv::DT_PROTOCOL_NAMESPACE::DtVrlinkEntityStateListener& listener);
73 
75  virtual void createAndSendState(makVrv::DtElementID entity,
76  DtIffStateObjectAgent& objectDriver);
77  virtual void setState(DtVrlinkIffStateListener& listener,
78  DtIffStateDataEntry& state);
79 
80  boost::signal<void (makVrv::DtUniqueID, DtIffStateData)> signal_stateUpdated;
81  boost::signal<void (makVrv::DtUniqueID, DtIffStateData)> signal_stateAdded;
82 
83  protected:
84 
85  static void postDrainInput(void* usr);
86 
87  virtual void slot_postUpdateCallback(DtVrlinkIffStateListener&);
88 
89  protected:
90 
91  //A Listener and a driver which will be updated with it.
93  {
94  public:
95 
97  DtIffStateObjectAgent& driver, DtIffSimDataProcessor& processor);
98 
99  IffStateUpdater(const IffStateUpdater& orig);
100 
101  IffStateUpdater& operator=(const IffStateUpdater& orig);
102 
103  //Are the updaters equal
104  bool operator==(const IffStateUpdater& orig) const;
105 
107  void update(double timeT);
108 
109  protected:
110 
112  DtIffStateObjectAgent* myObjectAgent;
114  };
115 
116  typedef std::vector<makVrv::DtUniqueID> IffIdList;
117 
118  typedef std::map<DtString, DtVrlinkIffStateListener*> IffListeners;
120  {
122  DtIffStateObjectAgent* myAgent;
123  std::string myHostId;
125  };
126 
127  typedef std::map<makVrv::DtUniqueID,IffSimDataInstance > IffAgentMap;
128 
130  typedef std::map<makVrv::DtSimEntryUpdater::UpdateRate,IffUpdaterGroup>
132 
133  protected:
135 
138  DtTimedSection myTimer;
139  makVrv::DtSimEntryObjectAgent* mySimEntryAgent;
140 
144 
145  typedef std::map<makVrv::DtUniqueID, DtIffStateData> IffStates;
147  };
148  }
149 }

Document ID: Generated on Wed Mar 11 21:20:57 EDT 2015 from SVN revision 150940
Copyright © 2005-2014 VT MÄK. All Rights Reserved (www.mak.com)