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 
13 #include <vrfGuiCore/vrfGuiCore.h>
16 #include <vrvCore/DtUniqueID.h>
20 
21 typedef boost::function<bool (const DtReaderWriter* source, DtReaderWriter* destination,
22  const DtMergePath& path, const std::map<std::string, std::string>& attributes)> DtRollUpFunction;
23 
24 namespace makVrv
25 {
26  class DtDe;
27 }
28 
29 namespace makVrf
30 {
31  class DtSubordinateManagerStateComponent;
32 
40  {
41  public:
43  {
44  StructureChanged = 0x00000001,
45  DataChanged = 0x00000002
46  };
47 
48  typedef std::set<DtSimObjectReference> Leafs;
49  typedef std::map<std::string, DtRollUpFunction> RollUpRules;
50 
52  virtual ~DtAggregateRollUpManager() override;
53 
55  static DtAggregateRollUpManager& instance(makVrv::DtDe& de);
56  static void registerInstance(makVrv::DtDe&, DtAggregateRollUpManager*);
57 
59  virtual bool hasStateProperties(makVrv::DtUniqueID) const;
60 
62  virtual bool hasStateProperty(makVrv::DtUniqueID, const std::string& statePropName) const;
63 
68  virtual void parameterData(DtSimObjectReference ref, DtRwProperties&) const;
69  virtual void parameterData(const std::set<DtSimObjectReference>&, DtRwProperties&) const;
70  virtual void parameterData(const std::set<makVrv::DtUniqueID>&, DtRwProperties&) const;
71  virtual void parameterData(makVrv::DtUniqueID, DtRwProperties&) const;
72 
75  virtual void leafNodes(DtSimObjectReference ref, Leafs&, bool includePseudoAggregates = false) const;
76  virtual void leafNodes(makVrv::DtUniqueID, Leafs&, bool includePseudoAggregates = false) const;
77 
79  virtual void statePropertiesFor(DtSimObjectReference ref, DtRwProperties&) const;
80  virtual void statePropertiesContainedIn(const Leafs&, DtRwProperties&) const;
81  virtual void statePropertiesFor(makVrv::DtUniqueID, DtRwProperties&) const;
82  virtual void statePropertiesFor(const std::set<makVrv::DtUniqueID>&, DtRwProperties&) const;
83 
87  virtual void statePropertiesFor(const Leafs& states, DtRwProperties&) const;
88 
90  virtual bool isMonitorable(DtSimObjectReference ref) const;
91  virtual bool isMonitorable(makVrv::DtUniqueID) const;
92 
96  virtual void monitor(makVrv::DtUniqueID, bool);
97  virtual void startMonitoring(makVrv::DtUniqueID);
98  virtual void stopMonitoring(makVrv::DtUniqueID);
99 
100  virtual void installCustomRules();
101 
103  virtual makVrv::DtUniqueID superior(makVrv::DtUniqueID) const;
104 
106  boost::signals2::signal<void (makVrv::DtUniqueID, int)> signal_aggregateUpdated;
107 
108  protected:
110  virtual bool hasStateProperties(DtSimObjectReference) const;
111 
113  virtual bool hasStateProperty(DtSimObjectReference, const std::string& statePropName) const;
114 
115  virtual void slot_aggregateStateUpdated(DtSimObjectReference ref);
116  virtual void slot_aggregateRootStateUpdated(DtSimObjectReference ref);
117  virtual void slot_onStateViewAboutToBeRemoved(DtSimObjectReference ref);
118  virtual void startMonitoring(DtSimObjectReference ref, makVrv::DtUniqueID parent);
119 
120  protected:
122 
124  {
125  MonitorStruct() : refCount(0), updated(false), myStateProperties("") {};
127  refCount(orig.refCount), parents(orig.parents), leafNodes(orig.leafNodes), connections(orig.connections), updated(orig.updated),
128  myStateProperties(orig.myStateProperties) {}
129  virtual ~MonitorStruct() {};
130 
131  Leafs leafNodes;
132  std::vector<makVrv::DtUniqueID> parents;
133  int refCount;
135  bool updated;
137  };
138 
139  typedef std::map<makVrv::DtUniqueID, MonitorStruct> Monitoring;
141 
143 
145  };
146 }
std::map< makVrv::DtUniqueID, MonitorStruct > Monitoring
Definition: aggregateRollUpManager.h:139
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 pseudo aggregat...
Definition: aggregateRollUpManager.h:39
boost::signals2::signal< void(makVrv::DtUniqueID, int)> signal_aggregateUpdated
Signal sent when something about the aggregate has been updated.
Definition: aggregateRollUpManager.h:106
virtual ~MonitorStruct()
Definition: aggregateRollUpManager.h:129
Definition: aggregateRollUpManager.h:123
Definition: readerWriter.h:85
makVrv::DtDe & myDe
Definition: aggregateRollUpManager.h:121
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:140
#define DT_DLL_VRFGUICORE
Contains DLL export macros.
Definition: vrfGuiCore.h:25
std::set< DtSimObjectReference > Leafs
Definition: aggregateRollUpManager.h:48
MonitorStruct(const MonitorStruct &orig)
Definition: aggregateRollUpManager.h:126
MonitorStruct()
Definition: aggregateRollUpManager.h:125
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:22
Contains makVrv::DtVirtualBaseClass class.
makVrv::DtSignalConnectionManager myConnections
Definition: aggregateRollUpManager.h:142
int refCount
Definition: aggregateRollUpManager.h:133
std::map< std::string, DtRollUpFunction > RollUpRules
Definition: aggregateRollUpManager.h:49
Class to manage disconnection of boost connections on deletion.
Definition: DtSignalConnectionManager.h:20
std::vector< makVrv::DtUniqueID > parents
Definition: aggregateRollUpManager.h:132
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:135
makVrv::DtSignalConnectionManager * connections
Definition: aggregateRollUpManager.h:134
Base class to provide boost signal/slot management.
UpdateFlags
Definition: aggregateRollUpManager.h:42
Contains makVrv::DtUniqueID type.
DtTrueAggregateRollUpHelper myTrueAggregateRollUpHelper
Definition: aggregateRollUpManager.h:144
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:76
DtRwProperties myStateProperties
Definition: aggregateRollUpManager.h:136

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)