VR-Forces 4.7 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;
28 
31 typedef DtBoost::shared_ptr<DtOrgViewManagedObjectList> DtOrgViewManagedObjectListPtr;
34 typedef DtBoost::shared_ptr<const DtOrgViewManagedObjectList> DtOrgViewManagedObjectListConstPtr;
35 
43 {
44 private:
50 
51 protected:
56  const DtUUID& aggregate,
57  const DtVrfObjectPredicate& predicate,
58  bool reevaluatePeriodically = false, DtTime evaluationPeriod = 0.0);
60 
62  virtual void init();
63 
64 public:
67  static DtOrgViewManagedObjectListPtr create(
68  DtOrganizationView& organizationView,
69  const DtUUID& aggregate,
70  const DtVrfObjectPredicate& predicate,
71  bool reevaluatePeriodically = false, DtTime evaluationPeriod = 0.0);
72 
74 
76  virtual ~DtOrgViewManagedObjectList();
77 
79  virtual const DtUUID& aggregateId() const;
80 
82  virtual const DtVrfObjectPredicate& predicate() const;
83 
85  virtual bool reevaluatePeriodically() const;
86 
88  virtual DtTime evaluationPeriod() const;
89 
90  typedef std::list<DtVrfObject*>::iterator iterator;
91  typedef std::list<DtVrfObject*>::const_iterator const_iterator;
92 
96  virtual iterator begin();
97  virtual const_iterator begin() const;
98  virtual iterator end();
99  virtual const_iterator end() const;
100  virtual size_t size() const;
102 
103 protected:
106  virtual void add(DtVrfObject* obj);
107  virtual void remove(DtVrfObject* obj);
109 
112  static void childAddedCallback(const DtUUID& superior, const DtUUID& eid, void* userData);
113 
116  static void childRemovedCallback(const DtUUID& superior, const DtUUID& eid, void* userData);
117 
118  virtual void processChildAdded(const DtUUID& superior, const DtUUID& eid);
119  virtual void processChildRemoved(const DtUUID& superior, const DtUUID& eid);
120 
122  static void predicateCallback(DtVrfObject* vrfObject,
123  DtVrfObjectPredicateEvaluator* predicateEval, void* userData);
124  virtual void processPredicateCallback(DtVrfObject* vrfObject,
125  DtVrfObjectPredicateEvaluator* predicateEval);
126 
129  static void nodeAddedCallback(const DtUUID& eid, void* userData);
130 
133  static void nodeRemovedCallback(const DtUUID& eid, void* userData);
134 
135  virtual void processNodeAdded(const DtUUID& eid);
136  virtual void processNodeRemoved(const DtUUID& eid);
137 
138  static void objectRemovedCallback(DtVrfObject * vrfObject, void * usr);
139  virtual void processObjectRemoved(DtVrfObject * vrfObject);
140 
141  static void objectUUIDChangedCallback(const DtVrfObjectUUIDChangedCallbackInfo& info, void* usr);
142  virtual void processObjectUUIDChanged(const DtVrfObjectUUIDChangedCallbackInfo& info);
143 
144  virtual void registerAggregateNodeCallbacks();
145  virtual void registerOrgViewCallbacks();
146  virtual void registerObjectManagerCallbacks();
149  void unregisterAggregateNodeCallbacks();
150  void unregisterOrgViewCallbacks();
151  void unregisterPredicateCallbacksForAllChildren();
152  void unregisterPredicateCallbacks(DtVrfObject& object);
153  void unregisterObjectManagerCallbacks();
155 
156  virtual void populateList();
157 
158 protected:
167  std::list<DtVrfObject*> myManagedObjectList;
168 };

Document ID: Generated on Fri Apr 26 21:53:14 EDT 2019 from SVN revision 197883
Copyright © 2005-2019 VT MAK. All Rights Reserved (www.mak.com)