VR-Forces Development_Version Class Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator 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:
50 
51 protected:
56  const DtUUID& aggregate,
57  const DtVrfObjectPredicate& predicate,
58  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  virtual ~DtOrgViewManagedObjectList();
74 
76  virtual const DtUUID& aggregateId() const;
77 
79  virtual const DtVrfObjectPredicate& predicate() const;
80 
82  virtual bool reevaluatePeriodically() const;
83 
85  virtual DtTime evaluationPeriod() const;
86 
87  typedef std::list<DtVrfObject*>::iterator iterator;
88  typedef std::list<DtVrfObject*>::const_iterator const_iterator;
89 
93  virtual iterator begin();
94  virtual const_iterator begin() const;
95  virtual iterator end();
96  virtual const_iterator end() const;
97  virtual size_t size() const;
99 
100 protected:
103  virtual void add(DtVrfObject* obj);
104  virtual void remove(DtVrfObject* obj);
106 
109  static void childAddedCallback(const DtUUID& eid, void* userData);
110 
113  static void childRemovedCallback(const DtUUID& eid, void* userData);
114 
115  virtual void processChildAdded(const DtUUID& eid);
116  virtual void processChildRemoved(const DtUUID& eid);
117 
119  static void predicateCallback(DtVrfObject* vrfObject,
120  DtVrfObjectPredicateEvaluator* predicateEval, void* userData);
121  virtual void processPredicateCallback(DtVrfObject* vrfObject,
122  DtVrfObjectPredicateEvaluator* predicateEval);
123 
126  static void nodeAddedCallback(const DtUUID& eid, void* userData);
127 
130  static void nodeRemovedCallback(const DtUUID& eid, void* userData);
131 
132  virtual void processNodeAdded(const DtUUID& eid);
133  virtual void processNodeRemoved(const DtUUID& eid);
134 
135  static void objectRemovedCallback(DtVrfObject * vrfObject, void * usr);
136  virtual void processObjectRemoved(DtVrfObject * vrfObject);
137 
138  virtual void registerAggregateNodeCallbacks();
139  virtual void registerOrgViewCallbacks();
140  virtual void registerObjectManagerCallbacks();
143  void unregisterAggregateNodeCallbacks();
144  void unregisterOrgViewCallbacks();
145  void unregisterPredicateCallbacksForAllChildren();
146  void unregisterPredicateCallbacks(DtVrfObject& object);
147  void unregisterObjectManagerCallbacks();
149 
150  virtual void populateList();
151 
152 protected:
161  std::list<DtVrfObject*> myManagedObjectList;
162 };

Document ID: Generated on Tue Mar 8 22:13:38 EST 2016 from SVN revision 162938
Copyright © 2005-2015 VT MÄK. All Rights Reserved (www.mak.com)