VR-Forces Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
aggregateRollUpManager.h
Go to the documentation of this file.
1 /******************************************************************************
2 ** Copyright (c) 2014 MAK Technologies, Inc.
3 ** All rights reserved.
4 ******************************************************************************/
5 
8 
10 
11 #pragma once
12 
14 #include <vrfGuiCore/vrfGuiCore.h>
17 #include <vrvCore/DtUniqueID.h>
19 #include <vrvCore/DtStateView.h>
20 #include <vrvCore/DtEntityState.h>
24 
25 typedef boost::function<bool (const DtReaderWriter* source, DtReaderWriter* destination,
26  const DtMergePath& path, const std::map<std::string, std::string>& attributes)> DtRollUpFunction;
27 
28 namespace makVrv
29 {
30  class DtDe;
31 }
32 
33 namespace makVrf
34 {
42  {
43  public:
45  {
46  StructureChanged = 0x00000001,
47  DataChanged = 0x00000002
48  };
49 
50  typedef std::map<const makVrv::DtStateView<DtVrlinkSimulatedAggregateState>*,
52  typedef std::map<std::string, DtRollUpFunction> RollUpRules;
53 
55  virtual ~DtAggregateRollUpManager();
56 
58  static DtAggregateRollUpManager& instance(makVrv::DtDe& de);
59  static void registerInstance(makVrv::DtDe&, DtAggregateRollUpManager*);
60 
62  virtual bool hasStateProperties(makVrv::DtUniqueID) const;
63 
65  virtual bool hasStateProperty(makVrv::DtUniqueID, const std::string& statePropName) const;
66 
72  virtual void parameterData(const std::vector<makVrv::DtSimEntry*>&, DtRwProperties&) const;
73  virtual void parameterData(const std::vector<makVrv::DtUniqueID>&, DtRwProperties&) const;
74  virtual void parameterData(makVrv::DtUniqueID, DtRwProperties&) const;
75 
78  virtual void leafNodes(const makVrv::DtStateView<DtVrlinkSimulatedAggregateState>*,
79  const makVrv::DtStateView<DtVrfObjectDataState>* objectState, Leafs&, bool includePseudoAggregates = false) const;
80  virtual void leafNodes(makVrv::DtUniqueID, Leafs&, bool includePseudoAggregates = false) const;
81 
83  virtual void statePropertiesFor(const makVrv::DtStateView<makVrv::DtVrlinkSimulatedBaseState>*, DtRwProperties&) const;
84  virtual void statePropertiesFor(const std::vector<makVrv::DtSimEntry*>&, DtRwProperties&) const;
85  virtual void statePropertiesFor(const std::vector<makVrv::DtUniqueID>&, DtRwProperties&) const;
86  virtual void statePropertiesFor(makVrv::DtUniqueID, DtRwProperties&) const;
87 
91  virtual void statePropertiesFor(const Leafs& states, DtRwProperties&) const;
92 
94  virtual bool isMonitorable(const makVrv::DtStateView<makVrv::DtVrlinkSimulatedBaseState>*) const;
95  virtual bool isMonitorable(makVrv::DtUniqueID) const;
96 
100  virtual void monitor(makVrv::DtUniqueID, bool);
101  virtual void startMonitoring(makVrv::DtUniqueID);
102  virtual void stopMonitoring(makVrv::DtUniqueID);
103 
104  virtual void installCustomRules();
105 
107  virtual void setUpdateRate(makVrv::DtSimEntryUpdater::UpdateRate newRate);
108 
110  virtual makVrv::DtSimEntryUpdater::UpdateRate updateRate() const;
111 
113  virtual makVrv::DtUniqueID superior(makVrv::DtUniqueID) const;
114 
116  boost::signals2::signal<void (makVrv::DtUniqueID, int)> signal_aggregateUpdated;
117 
118  protected:
120  virtual bool hasStateProperties(const std::vector<std::string>&) const;
121 
123  virtual bool hasStateProperty(const std::vector<std::string>& str, const std::string& statePropName) const;
124 
127  virtual void leafNodes(const std::vector<std::string>&, Leafs&, bool includePseudoAggregates = false) const;
128 
129  virtual void slot_aggregateStateUpdated(makVrv::DtStateView<DtVrfObjectDataState>*);
130  virtual void slot_aggregateRootStateUpdated(makVrv::DtStateView<DtVrlinkSimulatedAggregateState>*);
131  virtual void slot_onStateViewAboutToBeRemoved(const makVrv::DtStateView<makVrv::DtVrlinkSimulatedBaseState>&);
132  virtual void startMonitoring(const makVrv::DtStateView<DtVrlinkSimulatedAggregateState>*, makVrv::DtUniqueID parent);
133 
134  protected:
136 
138  {
139  MonitorStruct() : refCount(0), updated(false), myStateProperties("") {};
141  refCount(orig.refCount), parents(orig.parents), leafNodes(orig.leafNodes), connections(orig.connections), updated(orig.updated),
142  myStateProperties(orig.myStateProperties) {}
143  virtual ~MonitorStruct() {};
144 
145  Leafs leafNodes;
146  std::vector<makVrv::DtUniqueID> parents;
147  int refCount;
149  bool updated;
151  };
152 
153  typedef std::map<makVrv::DtUniqueID, MonitorStruct> Monitoring;
155 
157 
160  };
161 }
std::map< makVrv::DtUniqueID, MonitorStruct > Monitoring
Definition: aggregateRollUpManager.h:153
Virtual base class. Allows for RTTI and proper virtual destruction. Used by Creators, Factories, Providers, Assemblers and User Interfaces.
Definition: DtVirtualBaseClass.h:19
This class will manage rolling up of subordinate data data information into container psuedo aggregat...
Definition: aggregateRollUpManager.h:41
UpdateRate
Definition: DtSimEntryUpdater.h:31
boost::signals2::signal< void(makVrv::DtUniqueID, int)> signal_aggregateUpdated
Signal sent when something about the aggregate has been updated.
Definition: aggregateRollUpManager.h:116
virtual ~MonitorStruct()
Definition: aggregateRollUpManager.h:143
Definition: aggregateRollUpManager.h:137
Contains makVrv::DtStateView class.
Definition: readerWriter.h:85
makVrv::DtDe & myDe
Definition: aggregateRollUpManager.h:135
This class contains helper functions and methods that can be used to roll up property data based on t...
Definition: trueAggregateRollUpHelper.h:24
Monitoring myMonitoring
Definition: aggregateRollUpManager.h:154
#define DT_DLL_VRFGUICORE
Contains DLL export macros.
Definition: vrfGuiCore.h:25
MonitorStruct(const MonitorStruct &orig)
Definition: aggregateRollUpManager.h:140
MonitorStruct()
Definition: aggregateRollUpManager.h:139
boost::function< bool(const DtReaderWriter *source, DtReaderWriter *destination, const DtMergePath &path, const std::map< std::string, std::string > &attributes)> DtRollUpFunction
Contains makVrf::DtAggregateRollUpManager class.
Definition: aggregateRollUpManager.h:26
Contains makVrv::DtVirtualBaseClass class.
makVrv::DtSignalConnectionManager myConnections
Definition: aggregateRollUpManager.h:156
int refCount
Definition: aggregateRollUpManager.h:147
std::map< std::string, DtRollUpFunction > RollUpRules
Definition: aggregateRollUpManager.h:52
Class to manage disconnection of boost connections on deletion.
Definition: DtSignalConnectionManager.h:20
std::vector< makVrv::DtUniqueID > parents
Definition: aggregateRollUpManager.h:146
Contains makVrv::DtVrlinkSimulatedEntityState class.
std::vector< DtMergePathStruct > DtMergePath
Definition: readerWriterFactory.h:181
const char * source
Definition: lz4.h:442
unsigned long long DtUniqueID
Definition: DtUniqueID.h:19
bool updated
Definition: aggregateRollUpManager.h:149
makVrv::DtSignalConnectionManager * connections
Definition: aggregateRollUpManager.h:148
Contains makVrv::DtSimEntryUpdater class.
makVrv::DtSimEntryUpdater::UpdateRate myUpdateRate
Definition: aggregateRollUpManager.h:159
Base class to provide boost signal/slot management.
UpdateFlags
Definition: aggregateRollUpManager.h:44
Contains makVrv::DtUniqueID type.
DtTrueAggregateRollUpHelper myTrueAggregateRollUpHelper
Definition: aggregateRollUpManager.h:158
A list of properties. A DtPropertyInterface object that is a specialized version of DtRwVariableBindi...
Definition: rwProperties.h:122
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:72
DtRwProperties myStateProperties
Definition: aggregateRollUpManager.h:150
std::map< const makVrv::DtStateView< DtVrlinkSimulatedAggregateState > *, const makVrv::DtStateView< DtVrfObjectDataState > * > Leafs
Definition: aggregateRollUpManager.h:51

Document ID: Generated on Tue Sep 24 19:28:17 EDT 2024 from SVN revision 269799
Copyright © 2005-2024 MAK Technologies. All Rights Reserved (www.mak.com)