VR-Forces 4.8 Class Documentation
 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>
16 #include <vrvCore/DtUniqueID.h>
18 #include <vrvCore/DtStateView.h>
19 #include <vrvCore/DtEntityState.h>
23 
24 typedef boost::function<bool (const DtReaderWriter* source, DtReaderWriter* destination,
25  const DtMergePath& path, const std::map<std::string, std::string>& attributes)> DtRollUpFunction;
26 
27 namespace makVrv
28 {
29  class DtDe;
30 }
31 
32 namespace makVrf
33 {
41  {
42  public:
44  {
45  StructureChanged = 0x00000001,
46  DataChanged = 0x00000002
47  };
48 
49  typedef std::set<const makVrv::DtStateView<DtVrlinkSimulatedAggregateState>*> Leafs;
50  typedef std::map<std::string, DtRollUpFunction> RollUpRules;
51 
53  virtual ~DtAggregateRollUpManager();
54 
56  static DtAggregateRollUpManager& instance(makVrv::DtDe& de);
57  static void registerInstance(makVrv::DtDe&, DtAggregateRollUpManager*);
58 
60  virtual bool hasStateProperties(makVrv::DtUniqueID) const;
61 
63  virtual bool hasStateProperty(makVrv::DtUniqueID, const std::string& statePropName) const;
64 
70  virtual void parameterData(const std::vector<makVrv::DtSimEntry*>&, DtRwProperties&) const;
71  virtual void parameterData(const std::vector<makVrv::DtUniqueID>&, DtRwProperties&) const;
72  virtual void parameterData(makVrv::DtUniqueID, DtRwProperties&) const;
73 
76  virtual void leafNodes(const makVrv::DtStateView<DtVrlinkSimulatedAggregateState>*, Leafs&,
77  bool includePseudoAggregates = false) const;
78  virtual void leafNodes(makVrv::DtUniqueID, Leafs&, bool includePseudoAggregates = false) const;
79 
81  virtual void statePropertiesFor(const makVrv::DtStateView<makVrv::DtVrlinkSimulatedBaseState>*, DtRwProperties&) const;
82  virtual void statePropertiesFor(const std::vector<makVrv::DtSimEntry*>&, DtRwProperties&) const;
83  virtual void statePropertiesFor(const std::vector<makVrv::DtUniqueID>&, DtRwProperties&) const;
84  virtual void statePropertiesFor(makVrv::DtUniqueID, DtRwProperties&) const;
85 
89  virtual void statePropertiesFor(const Leafs& states, DtRwProperties&) const;
90 
92  virtual bool isMonitorable(const makVrv::DtStateView<makVrv::DtVrlinkSimulatedBaseState>*) const;
93  virtual bool isMonitorable(makVrv::DtUniqueID) const;
94 
98  virtual void monitor(makVrv::DtUniqueID, bool);
99  virtual void startMonitoring(makVrv::DtUniqueID);
100  virtual void stopMonitoring(makVrv::DtUniqueID);
101 
102  virtual void installCustomRules();
103 
105  virtual void setUpdateRate(makVrv::DtSimEntryUpdater::UpdateRate newRate);
106 
108  virtual makVrv::DtSimEntryUpdater::UpdateRate updateRate() const;
109 
111  virtual makVrv::DtUniqueID superior(makVrv::DtUniqueID) const;
112 
114  boost::signals2::signal<void (makVrv::DtUniqueID, int)> signal_aggregateUpdated;
115 
116  protected:
118  virtual bool hasStateProperties(const std::vector<std::string>&) const;
119 
121  virtual bool hasStateProperty(const std::vector<std::string>& str, const std::string& statePropName) const;
122 
125  virtual void leafNodes(const std::vector<std::string>&, Leafs&, bool includePseudoAggregates = false) const;
126 
127  virtual void slot_aggregateStateUpdated(makVrv::DtStateView<DtVrlinkSimulatedAggregateState>*);
128  virtual void slot_aggregateRootStateUpdated(makVrv::DtStateView<DtVrlinkSimulatedAggregateState>*);
129  virtual void slot_onStateViewAboutToBeRemoved(const makVrv::DtStateView<makVrv::DtVrlinkSimulatedBaseState>&);
130  virtual void startMonitoring(const makVrv::DtStateView<DtVrlinkSimulatedAggregateState>*, makVrv::DtUniqueID parent);
131 
132  protected:
134 
136  {
137  MonitorStruct() : refCount(0), updated(false), myStateProperties("") {};
139  refCount(orig.refCount), parents(orig.parents), leafNodes(orig.leafNodes), connections(orig.connections), updated(orig.updated),
140  myStateProperties(orig.myStateProperties) {}
141  virtual ~MonitorStruct() {};
142 
143  Leafs leafNodes;
144  std::vector<makVrv::DtUniqueID> parents;
145  int refCount;
147  bool updated;
149  };
150 
151  typedef std::map<makVrv::DtUniqueID, MonitorStruct> Monitoring;
153 
155 
158  };
159 }
std::map< makVrv::DtUniqueID, MonitorStruct > Monitoring
Definition: aggregateRollUpManager.h:151
Virtual base class.
Definition: DtVirtualBaseClass.h:22
This class will manage rolling up of subordinate data data information into container psuedo aggregat...
Definition: aggregateRollUpManager.h:40
UpdateRate
Definition: DtSimEntryUpdater.h:34
boost::signals2::signal< void(makVrv::DtUniqueID, int)> signal_aggregateUpdated
Signal sent when something about the aggregate has been updated.
Definition: aggregateRollUpManager.h:114
virtual ~MonitorStruct()
Definition: aggregateRollUpManager.h:141
Definition: aggregateRollUpManager.h:135
Contains makVrv::DtStateView class.
Definition: readerWriter.h:85
makVrv::DtDe & myDe
Definition: aggregateRollUpManager.h:133
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:152
#define DT_DLL_VRFGUICORE
Contains DLL export macros.
Definition: vrfGuiCore.h:25
MonitorStruct(const MonitorStruct &orig)
Definition: aggregateRollUpManager.h:138
MonitorStruct()
Definition: aggregateRollUpManager.h:137
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:25
Contains makVrv::DtVirtualBaseClass class.
makVrv::DtSignalConnectionManager myConnections
Definition: aggregateRollUpManager.h:154
int refCount
Definition: aggregateRollUpManager.h:145
std::map< std::string, DtRollUpFunction > RollUpRules
Definition: aggregateRollUpManager.h:50
Class to manage disconnection of boost connections on deletion.
Definition: DtSignalConnectionManager.h:24
std::vector< makVrv::DtUniqueID > parents
Definition: aggregateRollUpManager.h:144
Contains makVrv::DtEntityState class.
std::vector< DtMergePathStruct > DtMergePath
Definition: readerWriterFactory.h:167
std::set< const makVrv::DtStateView< DtVrlinkSimulatedAggregateState > * > Leafs
Definition: aggregateRollUpManager.h:49
const char * source
Definition: lz4.h:436
unsigned long long DtUniqueID
Definition: DtUniqueID.h:22
bool updated
Definition: aggregateRollUpManager.h:147
makVrv::DtSignalConnectionManager * connections
Definition: aggregateRollUpManager.h:146
Contains makVrv::DtSimEntryUpdater class.
makVrv::DtSimEntryUpdater::UpdateRate myUpdateRate
Definition: aggregateRollUpManager.h:157
Base class to provide boost signal/slot management.
UpdateFlags
Definition: aggregateRollUpManager.h:43
Contains makVrv::DtUniqueID type.
DtTrueAggregateRollUpHelper myTrueAggregateRollUpHelper
Definition: aggregateRollUpManager.h:156
A list of properties.
Definition: rwProperties.h:126
The DtDe is the core component of any VR-Vantage application.
Definition: DtDe.h:69
DtRwProperties myStateProperties
Definition: aggregateRollUpManager.h:148

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)