VR-Forces 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 
31 #include <vrfGuiCore/vrfGuiCore.h>
32 #include <vrfutil/rwUUID.h>
33 
35 #include <vrvCore/DtUniqueID.h>
38 
40 #include <set>
41 
42 class DtSpotReport;
43 
44 namespace makVrv
45 {
46  class DtDe;
47 }
48 
49 namespace makVrf
50 {
51  class DtGuiLocalObject;
52  class DtSpotReportDataHandler;
53  class DtSpotReportDataHandlerCreatorInterface;
54  class DtVrfSimBackendManager;
55 
57  {
58  public:
59 
61  static DtSpotReportDataProcessor& instance(makVrv::DtDe& de);
62 
64  void forceObjectUpdate(makVrv::DtUniqueID uniqueId);
65 
66  public:
69  virtual void addSpotReportHandler(const std::string& s, DtSpotReportDataHandlerCreatorInterface*);
70 
71  virtual void removeSpotReportHandler(const std::string& s);
72 
76  virtual bool addOrUpdateSpotReport(const std::string& type, void* data, const DtUUID&);
77 
79  virtual void removeSpotReport(makVrv::DtUniqueID id);
80 
82  virtual void removeAllSpotReports();
83 
85  virtual void resetFlushDataTime();
86 
88  virtual std::set<makVrv::DtUniqueID> observing(makVrv::DtUniqueID) const;
89 
91  virtual void setSuspended(bool);
92  bool suspended() const
93  {
94  return mySuspended;
95  }
96 
99  virtual double simTime() const;
100 
101  virtual bool isSpotReport(makVrv::DtUniqueID id) const;
102 
104  virtual DtSimObjectReference lookup(const DtUUID&) const;
105 
106  protected:
107  virtual DtSpotReportDataHandler* createSpotReportHandler(const std::string& s, makVrv::DtUniqueID) const;
108 
110  virtual bool createSpotReport(const std::string& type, void* data, const DtUUID&);
111 
112  protected:
114  virtual void processForceUpdateList();
115 
118  virtual void slot_localObjectRemoved(DtGuiLocalObject*);
119 
121  virtual void tick();
122 
123  virtual void updateFlushTime();
124  virtual void updatePendingReports();
125  virtual DtVrfSimBackendManager& backendManager() const;
126 
127  protected:
130 
132  virtual ~DtSpotReportDataProcessor() override;
133 
134  protected:
135  typedef std::set<makVrv::DtUniqueID> SpotReportIdList;
136  typedef std::map<std::string, DtSpotReportDataHandlerCreatorInterface*> SpotReportHandlerCreators;
137  typedef std::map<DtUUID, DtSpotReportDataHandler*> SpotReportHandlers;
138  typedef std::map<makVrv::DtUniqueID, DtSpotReportDataHandler*> SpotReportHandlersById;
139 
146 
149 
152 
155 
157  {
158  PendingSpotReport() : report(0) {};
160  : type(orig.type), key(orig.key), report(orig.report)
161  {
162  }
163 
165  {
166  type = orig.type;
167  key = orig.key;
168  report = orig.report;
169 
170  return *this;
171  }
172 
173  virtual ~PendingSpotReport() {};
174  std::string type;
177  };
178 
179  typedef std::vector<PendingSpotReport> PendingSpotReports;
180 
182 
183  std::set<makVrv::DtUniqueID> myPendingReportsToFlushData;
184  };
185 }
Definition: spotReportDataProcessor.h:156
UUID is a unique ID wrapper class.
Definition: uuid.h:59
std::map< DtUUID, DtSpotReportDataHandler * > SpotReportHandlers
Definition: spotReportDataProcessor.h:137
Virtual base class. Allows for RTTI and proper virtual destruction. Used by Creators, Factories, Providers, Assemblers and User Interfaces.
Definition: DtVirtualBaseClass.h:19
std::set< makVrv::DtUniqueID > myPendingReportsToFlushData
Definition: spotReportDataProcessor.h:183
double myNextFlushDataTime
Definition: spotReportDataProcessor.h:150
PendingSpotReport(const PendingSpotReport &orig)
Definition: spotReportDataProcessor.h:159
SpotReportHandlerCreators mySpotReportHandlerCreators
Definition: spotReportDataProcessor.h:143
makVrv::DtSignalConnectionManager myConnections
Definition: spotReportDataProcessor.h:141
Definition: spotReportDataProcessor.h:56
Contains the DtUUID class declaration.
std::set< makVrv::DtUniqueID > SpotReportIdList
Definition: spotReportDataProcessor.h:135
#define DT_DLL_VRFGUICORE
Contains DLL export macros.
Definition: vrfGuiCore.h:25
PendingSpotReport()
Definition: spotReportDataProcessor.h:158
PendingSpotReport & operator=(const PendingSpotReport &orig)
Definition: spotReportDataProcessor.h:164
Definition: spotReportDataHandler.h:72
DtSpotReport * report
Definition: spotReportDataProcessor.h:176
std::string type
Definition: spotReportDataProcessor.h:173
bool suspended() const
Definition: spotReportDataProcessor.h:92
SpotReportHandlersById mySpotReportHandlersById
Definition: spotReportDataProcessor.h:145
Contains makVrv::DtVirtualBaseClass class.
SpotReportIdList myForceUpdateList
Definition: spotReportDataProcessor.h:142
Class to manage disconnection of boost connections on deletion.
Definition: DtSignalConnectionManager.h:20
virtual ~PendingSpotReport()
Definition: spotReportDataProcessor.h:173
std::vector< PendingSpotReport > PendingSpotReports
Definition: spotReportDataProcessor.h:179
int myPauseFlushUpdate
Definition: spotReportDataProcessor.h:153
unsigned long long DtUniqueID
Definition: DtUniqueID.h:19
PendingSpotReports myPendingSpotReports
Definition: spotReportDataProcessor.h:181
Definition: spotReportDataHandler.h:35
makVrv::DtDe & myDe
Definition: spotReportDataProcessor.h:140
Definition: guiLocalObject.h:18
bool mySuspended
Definition: spotReportDataProcessor.h:154
Base class to provide boost signal/slot management.
SpotReportHandlers mySpotReportHandlers
Definition: spotReportDataProcessor.h:144
std::map< std::string, DtSpotReportDataHandlerCreatorInterface * > SpotReportHandlerCreators
Definition: spotReportDataProcessor.h:136
Maintains and signals state of the simulation engines that are currently connected to the GUI...
Definition: vrfSimBackendManager.h:79
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:76
std::map< makVrv::DtUniqueID, DtSpotReportDataHandler * > SpotReportHandlersById
Definition: spotReportDataProcessor.h:138
SpotReportHandlersById myNeedsUpdateOnAdd
If item is added, force an update.
Definition: spotReportDataProcessor.h:148
DtUUID key
Definition: spotReportDataProcessor.h:175
DtVrfSimBackendManager * myBackendManager
Definition: spotReportDataProcessor.h:151
DtSpotReport; subclass of DtSimReport.
Definition: spotReport.h:35

Document ID: Generated on Thu Oct 23 22:29:17 EDT 2025 from SVN revision 280951
Copyright © 2005-2024 MAK Technologies. All Rights Reserved (www.mak.com)