VR-Forces 4.6 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>
17 #include <vrvCore/DtDe.h>
18 #include <vrfutil/rwProperties.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 makVrf
29 {
37  {
38  public:
40  {
41  StructureChanged = 0x00000001,
42  DataChanged = 0x00000002
43  };
44 
45  typedef std::set<const makVrv::DtStateView<DtVrlinkSimulatedAggregateState>*> Leafs;
46  typedef std::map<std::string, DtRollUpFunction> RollUpRules;
47 
49  virtual ~DtAggregateRollUpManager();
50 
52  static DtAggregateRollUpManager& instance(makVrv::DtDe& de);
53  static void registerInstance(makVrv::DtDe&, DtAggregateRollUpManager*);
54 
56  virtual bool hasStateProperties(makVrv::DtUniqueID) const;
57 
59  virtual bool hasStateProperty(makVrv::DtUniqueID, const std::string& statePropName) const;
60 
66  virtual void parameterData(const std::vector<makVrv::DtSimEntry*>&, DtRwProperties&) const;
67  virtual void parameterData(const std::vector<makVrv::DtUniqueID>&, DtRwProperties&) const;
68  virtual void parameterData(makVrv::DtUniqueID, DtRwProperties&) const;
69 
72  virtual void leafNodes(const makVrv::DtStateView<DtVrlinkSimulatedAggregateState>*, Leafs&,
73  bool includePseudoAggregates = false) const;
74  virtual void leafNodes(makVrv::DtUniqueID, Leafs&, bool includePseudoAggregates = false) const;
75 
77  virtual void statePropertiesFor(const makVrv::DtStateView<makVrv::DtVrlinkSimulatedBaseState>*, DtRwProperties&) const;
78  virtual void statePropertiesFor(const std::vector<makVrv::DtSimEntry*>&, DtRwProperties&) const;
79  virtual void statePropertiesFor(const std::vector<makVrv::DtUniqueID>&, DtRwProperties&) const;
80  virtual void statePropertiesFor(makVrv::DtUniqueID, DtRwProperties&) const;
81 
85  virtual void statePropertiesFor(const Leafs& states, DtRwProperties&) const;
86 
88  virtual bool isMonitorable(const makVrv::DtStateView<makVrv::DtVrlinkSimulatedBaseState>*) const;
89  virtual bool isMonitorable(makVrv::DtUniqueID) const;
90 
94  virtual void monitor(makVrv::DtUniqueID, bool);
95  virtual void startMonitoring(makVrv::DtUniqueID);
96  virtual void stopMonitoring(makVrv::DtUniqueID);
97 
98  virtual void installCustomRules();
99 
101  virtual void setUpdateRate(makVrv::DtSimEntryUpdater::UpdateRate newRate);
102 
104  virtual makVrv::DtSimEntryUpdater::UpdateRate updateRate() const;
105 
107  virtual makVrv::DtUniqueID superior(makVrv::DtUniqueID) const;
108 
110  boost::signal<void (makVrv::DtUniqueID, int)> signal_aggregateUpdated;
111 
112  protected:
114  virtual bool hasStateProperties(const std::vector<std::string>&) const;
115 
117  virtual bool hasStateProperty(const std::vector<std::string>& str, const std::string& statePropName) const;
118 
121  virtual void leafNodes(const std::vector<std::string>&, Leafs&, bool includePseudoAggregates = false) const;
122 
123  virtual void slot_aggregateStateUpdated(makVrv::DtStateView<DtVrlinkSimulatedAggregateState>*);
124  virtual void slot_aggregateRootStateUpdated(makVrv::DtStateView<DtVrlinkSimulatedAggregateState>*);
125  virtual void slot_onStateViewAboutToBeRemoved(const makVrv::DtStateView<makVrv::DtVrlinkSimulatedBaseState>&);
126  virtual void startMonitoring(const makVrv::DtStateView<DtVrlinkSimulatedAggregateState>*, makVrv::DtUniqueID parent);
127 
128  protected:
130 
132  {
133  MonitorStruct() : refCount(0), updated(false), myStateProperties("") {};
135  refCount(orig.refCount), parents(orig.parents), leafNodes(orig.leafNodes), connections(orig.connections), updated(orig.updated),
136  myStateProperties(orig.myStateProperties) {}
137  virtual ~MonitorStruct() {};
138 
139  Leafs leafNodes;
140  std::vector<makVrv::DtUniqueID> parents;
141  int refCount;
143  bool updated;
145  };
146 
147  typedef std::map<makVrv::DtUniqueID, MonitorStruct> Monitoring;
149 
151 
154  };
155 }

Document ID: Generated on Thu Apr 12 03:15:37 EDT 2018 from SVN revision 187986
Copyright © 2005-2018 VT MÄK. All Rights Reserved (www.mak.com)