VR-Forces 4.6 Class Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties 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;
94  virtual DtOrgViewManagedObjectListConstPtr subordinatesToIncludeInSpatialModel() const;
96 
98  bool isAggregate() const { return myIsAggregate; };
99 
100 private:
101 
103  DtAggregateNode(const DtAggregateNode& orig);
104 
106  DtAggregateNode& operator=(const DtAggregateNode& orig);
107 
108 protected:
109 
112 
115 
119 
120 protected:
121 
124  static DtAggregateDataCreator theAggregateDataCreator;
125 
131 
133 };

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)