VR-Forces 4.1 Class Documentation
DtIffSimDataProcessor.h
Go to the documentation of this file.
1 /*******************************************************************************
2 ** Copyright (c) 2012 MAK Technologies, Inc.
3 ** All rights reserved.
4 *******************************************************************************/
5 /*******************************************************************************
6 ** $RCSfile: DtVrlinkIffSimDataProcessor.h,v $ $Revision: 1.1 $ $State: Exp $
7 *******************************************************************************/
8 
12 
13 #pragma once
14 
16 
18 
23 
24 namespace makVrv
25 {
26  class DtSimEntryObjectAgent;
27 
28  namespace DT_PROTOCOL_NAMESPACE
29  {
30  class DtVrlinkConnection;
31  class DtEntityElementProcessor;
32  }
33 }
34 
35 namespace makVrf
36 {
37  class DtIffStateObjectAgent;
38 
39  namespace VRF_PROTOCOL_NAMESPACE
40  {
41  class DtIffExistenceListener;
42  class DtVrlinkIffStateListener;
43 
46  {
47  public:
50 
53 
56 
58  virtual ~DtIffSimDataProcessor();
59 
61  virtual void postDrainInput();
62 
64  virtual void setObjectUpdateRate(makVrv::DtUniqueID uniqueId, makVrv::DtSimEntryUpdater::UpdateRate rate);
65 
67  virtual void forceObjectUpdate(makVrv::DtUniqueID uniqueId);
68 
70  virtual void iffDiscovered(DtVrlinkIffStateListener& listener);
71 
73  virtual void iffToBeDeleted(DtVrlinkIffStateListener& listener);
74 
75  virtual void entityToBeDeleted(makVrv::DtEntityStateListener& listener);
76 
78  virtual void createAndSendState(makVrv::DtElementID entity,
79  DtIffStateObjectAgent& objectDriver);
80  virtual void setState(DtVrlinkIffStateListener& listener,
81  DtIffStateDataEntry& state);
82 
83  boost::signal<void (makVrv::DtUniqueID, DtIffStateData)> signal_stateUpdated;
84  boost::signal<void (makVrv::DtUniqueID, DtIffStateData)> signal_stateAdded;
85 
86  protected:
87 
88  static void postDrainInput(void* usr);
89 
90  virtual void slot_postUpdateCallback(DtVrlinkIffStateListener&);
91 
92  protected:
93 
94  //A Listener and a driver which will be updated with it.
96  {
97  public:
98 
100  DtIffStateObjectAgent& driver, DtIffSimDataProcessor& processor);
101 
102  IffStateUpdater(const IffStateUpdater& orig);
103 
104  IffStateUpdater& operator=(const IffStateUpdater& orig);
105 
106  //Are the updaters equal
107  bool operator==(const IffStateUpdater& orig) const;
108 
110  void update(double timeT);
111 
112  protected:
113 
115  DtIffStateObjectAgent* myObjectAgent;
117  };
118 
119  typedef std::vector<makVrv::DtUniqueID> IffIdList;
120 
121  typedef std::map<DtString, DtVrlinkIffStateListener*> IffListeners;
123  {
125  DtIffStateObjectAgent* myAgent;
126  std::string myHostId;
128  };
129 
130  typedef std::map<makVrv::DtUniqueID,IffSimDataInstance > IffAgentMap;
131 
133  typedef std::map<makVrv::DtSimEntryUpdater::UpdateRate,IffUpdaterGroup>
135 
136  protected:
138 
142  DtTimedSection myTimer;
143  makVrv::DtSimEntryObjectAgent* mySimEntryAgent;
144 
148 
149  typedef std::map<makVrv::DtUniqueID, DtIffStateData> IffStates;
151  };
152  }
153 }

Document ID: Generated on Tue Jan 29 18:21:16 EST 2013 from SVN revision 123193
Copyright © 2005-2013 VT MÄK Inc. All Rights Reserved (www.mak.com)