VR-Forces 4.8 Class Documentation
 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 
31 #include <vrvUtil/signalslib.h>
32 #include <vrvCore/DtUniqueID.h>
37 #include <vrfutil/rwUUID.h>
38 
39 #include <boost/bind.hpp>
40 
41 class DtSpotReport;
42 
43 namespace makVrv
44 {
45  class DtDe;
46  class DtSimEntryObjectAgent;
47  class DtSimObjectEntry;
48 }
49 
50 namespace makVrf
51 {
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 
103  protected:
104  virtual DtSpotReportDataHandler* createSpotReportHandler(const std::string& s, makVrv::DtUniqueID) const;
105 
107  virtual bool createSpotReport(const std::string& type, void* data, const DtUUID&);
108 
109  protected:
111  virtual void processForceUpdateList();
112 
115  virtual void slot_simObjectEntryAboutToBeRemoved(makVrv::DtSimObjectEntry& entry);
116 
118  virtual void tick();
119 
120  virtual void updateFlushTime();
121  virtual void updatePendingReports();
122  virtual DtVrfSimBackendManager& backendManager() const;
123 
124  protected:
127 
129  virtual ~DtSpotReportDataProcessor();
130 
131  protected:
132  typedef std::set<makVrv::DtUniqueID> SpotReportIdList;
133  typedef std::map<std::string, DtSpotReportDataHandlerCreatorInterface*> SpotReportHandlerCreators;
134  typedef std::map<DtUUID, DtSpotReportDataHandler*> SpotReportHandlers;
135  typedef std::map<makVrv::DtUniqueID, DtSpotReportDataHandler*> SpotReportHandlersById;
136 
138  makVrv::DtSimEntryObjectAgent* mySimEntryAgent;
144 
147 
150 
153 
155  {
156  PendingSpotReport() : report(0) {};
158  : type(orig.type), key(orig.key), report(orig.report)
159  {
160  }
161 
163  {
164  type = orig.type;
165  key = orig.key;
166  report = orig.report;
167 
168  return *this;
169  }
170 
171  virtual ~PendingSpotReport() {};
172  std::string type;
175  };
176 
177  typedef std::vector<PendingSpotReport> PendingSpotReports;
178 
180 
181  std::set<makVrv::DtUniqueID> myPendingReportsToFlushData;
182  };
183 }
Definition: spotReportDataProcessor.h:154
UUID is a unique ID wrapper class.
Definition: rwUUID.h:222
Contains makVrv::DtSimDataProcessorInterface class.
std::map< DtUUID, DtSpotReportDataHandler * > SpotReportHandlers
Definition: spotReportDataProcessor.h:134
std::set< makVrv::DtUniqueID > myPendingReportsToFlushData
Definition: spotReportDataProcessor.h:181
double myNextFlushDataTime
Definition: spotReportDataProcessor.h:148
PendingSpotReport(const PendingSpotReport &orig)
Definition: spotReportDataProcessor.h:157
SpotReportHandlerCreators mySpotReportHandlerCreators
Definition: spotReportDataProcessor.h:141
makVrv::DtSignalConnectionManager myConnections
Definition: spotReportDataProcessor.h:139
Definition: spotReportDataProcessor.h:56
std::set< makVrv::DtUniqueID > SpotReportIdList
Definition: spotReportDataProcessor.h:132
#define DT_DLL_VRFGUICORE
Contains DLL export macros.
Definition: vrfGuiCore.h:25
PendingSpotReport()
Definition: spotReportDataProcessor.h:156
PendingSpotReport & operator=(const PendingSpotReport &orig)
Definition: spotReportDataProcessor.h:162
Definition: spotReportDataHandler.h:70
DtSpotReport * report
Definition: spotReportDataProcessor.h:174
std::string type
Definition: spotReportDataProcessor.h:171
bool suspended() const
Definition: spotReportDataProcessor.h:92
SpotReportHandlersById mySpotReportHandlersById
Definition: spotReportDataProcessor.h:143
A DtSimObjectEntry is an entry for a persistent simulation object like an entity. ...
Definition: DtSimObjectEntry.h:25
SpotReportIdList myForceUpdateList
Definition: spotReportDataProcessor.h:140
Class to manage disconnection of boost connections on deletion.
Definition: DtSignalConnectionManager.h:24
virtual ~PendingSpotReport()
Definition: spotReportDataProcessor.h:171
std::vector< PendingSpotReport > PendingSpotReports
Definition: spotReportDataProcessor.h:177
int myPauseFlushUpdate
Definition: spotReportDataProcessor.h:151
unsigned long long DtUniqueID
Definition: DtUniqueID.h:22
PendingSpotReports myPendingSpotReports
Definition: spotReportDataProcessor.h:179
Definition: spotReportDataHandler.h:35
makVrv::DtDe & myDe
Definition: spotReportDataProcessor.h:137
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:152
Base class to provide boost signal/slot management.
SpotReportHandlers mySpotReportHandlers
Definition: spotReportDataProcessor.h:142
std::map< std::string, DtSpotReportDataHandlerCreatorInterface * > SpotReportHandlerCreators
Definition: spotReportDataProcessor.h:133
Maintains and signals state of the simulation engines that are currently connected to the GUI...
Definition: vrfSimBackendManager.h:73
Contains makVrv::DtUniqueID type.
The DtDe is the core component of any VR-Vantage application.
Definition: DtDe.h:69
makVrv::DtSimEntryObjectAgent * mySimEntryAgent
Definition: spotReportDataProcessor.h:138
std::map< makVrv::DtUniqueID, DtSpotReportDataHandler * > SpotReportHandlersById
Definition: spotReportDataProcessor.h:135
SpotReportHandlersById myNeedsUpdateOnAdd
If item is added, force an update.
Definition: spotReportDataProcessor.h:146
DtUUID key
Definition: spotReportDataProcessor.h:173
DtVrfSimBackendManager * myBackendManager
Definition: spotReportDataProcessor.h:149
DtSpotReport; subclass of DtSimReport.
Definition: spotReport.h:35

Document ID: Generated on Thu Aug 27 10:56:05 EDT 2020 from SVN revision 217100
Copyright © 2005-2020 MAK Technologies. All Rights Reserved (www.mak.com)