VR-Forces 4.3 Class Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator 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 
63  virtual void parameterData(const std::vector<makVrv::DtSimEntry*>&, DtRwProperties&) const;
64  virtual void parameterData(const std::vector<makVrv::DtUniqueID>&, DtRwProperties&) const;
65  virtual void parameterData(makVrv::DtUniqueID, DtRwProperties&) const;
66 
69  virtual void leafNodes(const makVrv::DtStateView<DtVrlinkSimulatedAggregateState>*, Leafs&,
70  bool includePseudoAggregates = false) const;
71  virtual void leafNodes(makVrv::DtUniqueID, Leafs&, bool includePseudoAggregates = false) const;
72 
74  virtual void statePropertiesFor(const makVrv::DtStateView<makVrv::DtVrlinkSimulatedBaseState>*, DtRwProperties&) const;
75  virtual void statePropertiesFor(const std::vector<makVrv::DtSimEntry*>&, DtRwProperties&) const;
76  virtual void statePropertiesFor(const std::vector<makVrv::DtUniqueID>&, DtRwProperties&) const;
77  virtual void statePropertiesFor(makVrv::DtUniqueID, DtRwProperties&) const;
78 
82  virtual void statePropertiesFor(const Leafs& states, DtRwProperties&) const;
83 
85  virtual bool isMonitorable(const makVrv::DtStateView<makVrv::DtVrlinkSimulatedBaseState>*) const;
86  virtual bool isMonitorable(makVrv::DtUniqueID) const;
87 
91  virtual void monitor(makVrv::DtUniqueID, bool);
92  virtual void startMonitoring(makVrv::DtUniqueID);
93  virtual void stopMonitoring(makVrv::DtUniqueID);
94 
95  virtual void installCustomRules();
96 
98  virtual void setUpdateRate(makVrv::DtSimEntryUpdater::UpdateRate newRate);
99 
101  virtual makVrv::DtSimEntryUpdater::UpdateRate updateRate() const;
102 
104  virtual makVrv::DtUniqueID superior(makVrv::DtUniqueID) const;
105 
107  boost::signal<void (makVrv::DtUniqueID, int)> signal_aggregateUpdated;
108 
109  protected:
111  virtual bool hasStateProperties(const std::vector<std::string>&) const;
112 
115  virtual void leafNodes(const std::vector<std::string>&, Leafs&, bool includePseudoAggregates = false) const;
116 
117  virtual void slot_aggregateStateUpdated(makVrv::DtStateView<DtVrlinkSimulatedAggregateState>*);
118  virtual void slot_aggregateRootStateUpdated(makVrv::DtStateView<DtVrlinkSimulatedAggregateState>*);
119  virtual void slot_onStateViewAboutToBeRemoved(const makVrv::DtStateView<makVrv::DtVrlinkSimulatedBaseState>&);
120  virtual void startMonitoring(const makVrv::DtStateView<DtVrlinkSimulatedAggregateState>*, makVrv::DtUniqueID parent);
121 
122  protected:
124 
126  {
127  MonitorStruct() : refCount(0), updated(false), myStateProperties("") {};
129  refCount(orig.refCount), parents(orig.parents), leafNodes(orig.leafNodes), connections(orig.connections), updated(orig.updated),
130  myStateProperties(orig.myStateProperties) {}
131  virtual ~MonitorStruct() {};
132 
133  Leafs leafNodes;
134  std::vector<makVrv::DtUniqueID> parents;
135  int refCount;
137  bool updated;
139  };
140 
141  typedef std::map<makVrv::DtUniqueID, MonitorStruct> Monitoring;
143 
145 
148  };
149 }

Document ID: Generated on Wed Mar 11 21:20:57 EDT 2015 from SVN revision 150940
Copyright © 2005-2014 VT MÄK. All Rights Reserved (www.mak.com)