VR-Forces 4.5 Class Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
aggregateNode.h
Go to the documentation of this file.
1 /*******************************************************************************
2 ** Copyright (c) 2015 MAK Technologies, Inc.
3 ** All rights reserved.
4 *******************************************************************************/
5 
8 
11 #pragma once
12 
14 #include "vrfutil/rwUUID.h"
15 #include <vlpi/entityIdentifier.h>
16 #include <vlutil/vlSmartPointers.h>
17 #include <list>
20 
21 #include <boost/unordered_map.hpp>
22 
23 class DtAggregateNode;
24 class DtAggregateData;
26 
27 typedef DtBoost::shared_ptr<DtAggregateNode> DtAggregateNodePtr;
28 typedef DtBoost::shared_ptr<const DtAggregateNode> DtAggregateNodeConstPtr;
29 typedef boost::unordered_map<DtUUID, DtAggregateNodePtr> DtAggregateNodeChildMap;
30 typedef DtBoost::shared_ptr<DtAggregateData> DtAggregateDataPtr;
31 typedef DtBoost::shared_ptr<const DtAggregateData> DtAggregateDataConstPtr;
32 typedef std::list<DtAggregateNodePtr> DtAggregateNodeList;
33 
38 {
39 public:
40 
42  typedef DtAggregateData* (*DtAggregateDataCreator)();
43 
44 public:
45 
47  DtAggregateNode(const DtUUID& uuid,
48  DtOrganizationManager& organizationManager);
49 
50  DtAggregateNode(DtOrganizationManager& organizationManager);
51 
53  virtual ~DtAggregateNode();
54 
56  virtual void addChild(DtAggregateNodePtr child);
57 
59  virtual bool removeChild(const DtUUID& child);
60 
62  const DtAggregateNodeChildMap& childList() const;
63 
65  virtual const DtSharedVrfObjectReference& entity() const;
66 
69  virtual DtAggregateDataPtr data();
70  virtual DtAggregateDataConstPtr data() const;
72 
74  virtual void print() const;
75 
77  virtual const DtUUID& uuid() const;
78 
79 public:
80 
85  static void setAggregateDataCreator(DtAggregateDataCreator creator);
86  static DtAggregateDataCreator aggregateDataCreator(void);
88 
91  virtual DtOrgViewManagedObjectListConstPtr taskableSubordinates() const;
92  virtual DtOrgViewManagedObjectListConstPtr ableToMoveSubordinates() const;
93  virtual DtOrgViewManagedObjectListConstPtr allSubordinates() const;
95 
97  bool isAggregate() const { return myIsAggregate; };
98 
99 private:
100 
102  DtAggregateNode(const DtAggregateNode& orig);
103 
105  DtAggregateNode& operator=(const DtAggregateNode& orig);
106 
107 protected:
108 
111 
114 
118 
119 protected:
120 
123  static DtAggregateDataCreator theAggregateDataCreator;
124 
129 
131 };

Document ID: Generated on Thu Mar 23 18:54:12 EDT 2017 from SVN revision 174804
Copyright © 2005-2017 VT MÄK. All Rights Reserved (www.mak.com)