VR-Forces 5.0.3 Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
spotReportDataProcessor.h
Go to the documentation of this file.
1 /******************************************************************************
2 ** Copyright (c) 2013 MAK Technologies, Inc.
3 ** All rights reserved.
4 ******************************************************************************/
5 
23 
26 
27 #pragma once
28 
29 #include <vrfGuiCore/vrfGuiCore.h>
30 #include <vrvCore/DtUniqueID.h>
35 #include <vrfutil/rwUUID.h>
36 
37 #include <boost/bind.hpp>
38 
39 class DtSpotReport;
40 
41 namespace makVrv
42 {
43  class DtDe;
44  class DtSimEntryObjectAgent;
45  class DtSimObjectEntry;
46 }
47 
48 namespace makVrf
49 {
50  class DtSpotReportDataHandler;
51  class DtSpotReportDataHandlerCreatorInterface;
52  class DtVrfSimBackendManager;
53 
55  {
56  public:
57 
59  static DtSpotReportDataProcessor& instance(makVrv::DtDe& de);
60 
62  void forceObjectUpdate(makVrv::DtUniqueID uniqueId);
63 
64  public:
67  virtual void addSpotReportHandler(const std::string& s, DtSpotReportDataHandlerCreatorInterface*);
68 
69  virtual void removeSpotReportHandler(const std::string& s);
70 
74  virtual bool addOrUpdateSpotReport(const std::string& type, void* data, const DtUUID&);
75 
77  virtual void removeSpotReport(makVrv::DtUniqueID id);
78 
80  virtual void removeAllSpotReports();
81 
83  virtual void resetFlushDataTime();
84 
86  virtual std::set<makVrv::DtUniqueID> observing(makVrv::DtUniqueID) const;
87 
89  virtual void setSuspended(bool);
90  bool suspended() const
91  {
92  return mySuspended;
93  }
94 
97  virtual double simTime() const;
98 
99  virtual bool isSpotReport(makVrv::DtUniqueID id) const;
100 
101  protected:
102  virtual DtSpotReportDataHandler* createSpotReportHandler(const std::string& s, makVrv::DtUniqueID) const;
103 
105  virtual bool createSpotReport(const std::string& type, void* data, const DtUUID&);
106 
107  protected:
109  virtual void processForceUpdateList();
110 
113  virtual void slot_simObjectEntryAboutToBeRemoved(makVrv::DtSimObjectEntry& entry);
114 
116  virtual void tick();
117 
118  virtual void updateFlushTime();
119  virtual void updatePendingReports();
120  virtual DtVrfSimBackendManager& backendManager() const;
121 
122  protected:
125 
127  virtual ~DtSpotReportDataProcessor();
128 
129  protected:
130  typedef std::set<makVrv::DtUniqueID> SpotReportIdList;
131  typedef std::map<std::string, DtSpotReportDataHandlerCreatorInterface*> SpotReportHandlerCreators;
132  typedef std::map<DtUUID, DtSpotReportDataHandler*> SpotReportHandlers;
133  typedef std::map<makVrv::DtUniqueID, DtSpotReportDataHandler*> SpotReportHandlersById;
134 
136  makVrv::DtSimEntryObjectAgent* mySimEntryAgent;
142 
145 
148 
151 
153  {
154  PendingSpotReport() : report(0) {};
156  : type(orig.type), key(orig.key), report(orig.report)
157  {
158  }
159 
161  {
162  type = orig.type;
163  key = orig.key;
164  report = orig.report;
165 
166  return *this;
167  }
168 
169  virtual ~PendingSpotReport() {};
170  std::string type;
173  };
174 
175  typedef std::vector<PendingSpotReport> PendingSpotReports;
176 
178 
179  std::set<makVrv::DtUniqueID> myPendingReportsToFlushData;
180  };
181 }
Definition: spotReportDataProcessor.h:152
UUID is a unique ID wrapper class.
Definition: rwUUID.h:229
Contains makVrv::DtSimDataProcessorInterface class.
std::map< DtUUID, DtSpotReportDataHandler * > SpotReportHandlers
Definition: spotReportDataProcessor.h:132
std::set< makVrv::DtUniqueID > myPendingReportsToFlushData
Definition: spotReportDataProcessor.h:179
double myNextFlushDataTime
Definition: spotReportDataProcessor.h:146
PendingSpotReport(const PendingSpotReport &orig)
Definition: spotReportDataProcessor.h:155
SpotReportHandlerCreators mySpotReportHandlerCreators
Definition: spotReportDataProcessor.h:139
makVrv::DtSignalConnectionManager myConnections
Definition: spotReportDataProcessor.h:137
Definition: spotReportDataProcessor.h:54
Contains the DtUUID class declaration.
std::set< makVrv::DtUniqueID > SpotReportIdList
Definition: spotReportDataProcessor.h:130
#define DT_DLL_VRFGUICORE
Contains DLL export macros.
Definition: vrfGuiCore.h:25
PendingSpotReport()
Definition: spotReportDataProcessor.h:154
PendingSpotReport & operator=(const PendingSpotReport &orig)
Definition: spotReportDataProcessor.h:160
Definition: spotReportDataHandler.h:69
DtSpotReport * report
Definition: spotReportDataProcessor.h:172
std::string type
Definition: spotReportDataProcessor.h:169
bool suspended() const
Definition: spotReportDataProcessor.h:90
SpotReportHandlersById mySpotReportHandlersById
Definition: spotReportDataProcessor.h:141
A DtSimObjectEntry is an entry for a persistent simulation object like an entity. ...
Definition: DtSimObjectEntry.h:22
SpotReportIdList myForceUpdateList
Definition: spotReportDataProcessor.h:138
Class to manage disconnection of boost connections on deletion.
Definition: DtSignalConnectionManager.h:20
virtual ~PendingSpotReport()
Definition: spotReportDataProcessor.h:169
std::vector< PendingSpotReport > PendingSpotReports
Definition: spotReportDataProcessor.h:175
int myPauseFlushUpdate
Definition: spotReportDataProcessor.h:149
PendingSpotReports myPendingSpotReports
Definition: spotReportDataProcessor.h:177
Definition: spotReportDataHandler.h:34
makVrv::DtDe & myDe
Definition: spotReportDataProcessor.h:135
Methods a data processor needs to implement to be considered a data processor.
Definition: DtSimDataProcessorInterface.h:24
Contains makVrv::DtSimEntryUpdater class.
Contains makVrv::DtBalancedUpdater class.
bool mySuspended
Definition: spotReportDataProcessor.h:150
Base class to provide boost signal/slot management.
SpotReportHandlers mySpotReportHandlers
Definition: spotReportDataProcessor.h:140
std::map< std::string, DtSpotReportDataHandlerCreatorInterface * > SpotReportHandlerCreators
Definition: spotReportDataProcessor.h:131
Maintains and signals state of the simulation engines that are currently connected to the GUI...
Definition: vrfSimBackendManager.h:77
Contains makVrv::DtUniqueID type.
The DtDe is the core component of any VR-Vantage application. It owns a DtRenderer, DtDeCommunicator, as well as a DtDisplay and other things.
Definition: DtDe.h:70
makVrv::DtSimEntryObjectAgent * mySimEntryAgent
Definition: spotReportDataProcessor.h:136
std::map< makVrv::DtUniqueID, DtSpotReportDataHandler * > SpotReportHandlersById
Definition: spotReportDataProcessor.h:133
SpotReportHandlersById myNeedsUpdateOnAdd
If item is added, force an update.
Definition: spotReportDataProcessor.h:144
DtUUID key
Definition: spotReportDataProcessor.h:171
DtVrfSimBackendManager * myBackendManager
Definition: spotReportDataProcessor.h:147
DtSpotReport; subclass of DtSimReport.
Definition: spotReport.h:35

Document ID: Generated on Thu Jun 1 17:58:13 EDT 2023 from SVN revision 255404
Copyright © 2005-2021 MAK Technologies. All Rights Reserved (www.mak.com)