VR-Forces 4.6 Class Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
orgViewManagedObjectList.h
Go to the documentation of this file.
1 /*******************************************************************************
2 ** Copyright (c) 2015 MAK Technologies, Inc.
3 ** All rights reserved.
4 *******************************************************************************/
5 
8 
11 
12 #pragma once
13 
14 #include <vlutil/vlTime.h>
15 #include <vlpi/entityIdentifier.h>
16 #include <list>
17 #include <vlutil/vlSmartPointers.h>
18 #include <vrfutil/rwUUID.h>
19 
20 class DtVrfObject;
21 class DtOrganizationView;
23 class DtVrfObjectManager;
27 
30 typedef DtBoost::shared_ptr<DtOrgViewManagedObjectList> DtOrgViewManagedObjectListPtr;
33 typedef DtBoost::shared_ptr<const DtOrgViewManagedObjectList> DtOrgViewManagedObjectListConstPtr;
34 
42 {
43 private:
49 
50 protected:
55  const DtUUID& aggregate,
56  const DtVrfObjectPredicate& predicate,
57  bool reevaluatePeriodically = false, DtTime evaluationPeriod = 0.0);
59 
61  virtual void init();
62 
63 public:
66  static DtOrgViewManagedObjectListPtr create(
67  DtOrganizationView& organizationView,
68  const DtUUID& aggregate,
69  const DtVrfObjectPredicate& predicate,
70  bool reevaluatePeriodically = false, DtTime evaluationPeriod = 0.0);
71 
73 
75  virtual ~DtOrgViewManagedObjectList();
76 
78  virtual const DtUUID& aggregateId() const;
79 
81  virtual const DtVrfObjectPredicate& predicate() const;
82 
84  virtual bool reevaluatePeriodically() const;
85 
87  virtual DtTime evaluationPeriod() const;
88 
89  typedef std::list<DtVrfObject*>::iterator iterator;
90  typedef std::list<DtVrfObject*>::const_iterator const_iterator;
91 
95  virtual iterator begin();
96  virtual const_iterator begin() const;
97  virtual iterator end();
98  virtual const_iterator end() const;
99  virtual size_t size() const;
101 
102 protected:
105  virtual void add(DtVrfObject* obj);
106  virtual void remove(DtVrfObject* obj);
108 
111  static void childAddedCallback(const DtUUID& superior, const DtUUID& eid, void* userData);
112 
115  static void childRemovedCallback(const DtUUID& superior, const DtUUID& eid, void* userData);
116 
117  virtual void processChildAdded(const DtUUID& superior, const DtUUID& eid);
118  virtual void processChildRemoved(const DtUUID& superior, const DtUUID& eid);
119 
121  static void predicateCallback(DtVrfObject* vrfObject,
122  DtVrfObjectPredicateEvaluator* predicateEval, void* userData);
123  virtual void processPredicateCallback(DtVrfObject* vrfObject,
124  DtVrfObjectPredicateEvaluator* predicateEval);
125 
128  static void nodeAddedCallback(const DtUUID& eid, void* userData);
129 
132  static void nodeRemovedCallback(const DtUUID& eid, void* userData);
133 
134  virtual void processNodeAdded(const DtUUID& eid);
135  virtual void processNodeRemoved(const DtUUID& eid);
136 
137  static void objectRemovedCallback(DtVrfObject * vrfObject, void * usr);
138  virtual void processObjectRemoved(DtVrfObject * vrfObject);
139 
140  virtual void registerAggregateNodeCallbacks();
141  virtual void registerOrgViewCallbacks();
142  virtual void registerObjectManagerCallbacks();
145  void unregisterAggregateNodeCallbacks();
146  void unregisterOrgViewCallbacks();
147  void unregisterPredicateCallbacksForAllChildren();
148  void unregisterPredicateCallbacks(DtVrfObject& object);
149  void unregisterObjectManagerCallbacks();
151 
152  virtual void populateList();
153 
154 protected:
163  std::list<DtVrfObject*> myManagedObjectList;
164 };

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)