VR-Forces 4.1.1 Class Documentation
orgViewManagedObjList.h
Go to the documentation of this file.
1 /*******************************************************************************
2 ** Copyright (c) 2005 MAK Technologies, Inc.
3 ** All rights reserved.
4 *******************************************************************************/
5 /*******************************************************************************
6 ** $RCSfile: orgViewManagedObjList.h,v $ $Revision: 1.3 $ $State: Exp $
7 *******************************************************************************/
8 
11 
14 
15 #ifndef DtOrgViewManagedObjectList_H_
16 #define DtOrgViewManagedObjectList_H_
17 
18 #include <vlutil/vlTime.h>
19 #include <vlpi/entityIdentifier.h>
20 #include <list>
21 #include <vlutil/vlSmartPointers.h>
22 
23 class DtVrfObject;
24 class DtOrganizationView;
26 class DtVrfObjectManager;
30 
33 typedef DtBoost::shared_ptr<DtOrgViewManagedObjectList> DtOrgViewManagedObjectListPtr;
36 typedef DtBoost::shared_ptr<const DtOrgViewManagedObjectList> DtOrgViewManagedObjectListConstPtr;
37 
45 {
46 private:
53 
54 protected:
59  const DtEntityIdentifier& aggregateId,
60  const DtVrfObjectPredicate& predicate,
61  bool reevaluatePeriodically = false, DtTime evaluationPeriod = 0.0);
62 
64  virtual void init();
65 
66 public:
69  static DtOrgViewManagedObjectListPtr create(
70  DtOrganizationView& organizationView,
71  const DtEntityIdentifier& aggregateId,
72  const DtVrfObjectPredicate& predicate,
73  bool reevaluatePeriodically = false, DtTime evaluationPeriod = 0.0);
74 
76  virtual ~DtOrgViewManagedObjectList();
77 
80  virtual const DtEntityIdentifier& aggregateId() const;
81 
83  virtual const DtVrfObjectPredicate& predicate() const;
84 
86  virtual bool reevaluatePeriodically() const;
87 
89  virtual DtTime evaluationPeriod() const;
90 
91  typedef std::list<DtVrfObject*>::iterator iterator;
92  typedef std::list<DtVrfObject*>::const_iterator const_iterator;
93 
97  virtual iterator begin();
98  virtual const_iterator begin() const;
99  virtual iterator end();
100  virtual const_iterator end() const;
101  virtual size_t size() const;
103 
104 protected:
107  virtual void add(DtVrfObject* obj);
108  virtual void remove(DtVrfObject* obj);
110 
113  static void childAddedCallback(DtEntityIdentifier eid, void* userData);
114 
117  static void childRemovedCallback(DtEntityIdentifier eid, void* userData);
118 
119  virtual void processChildAdded(DtEntityIdentifier eid);
120  virtual void processChildRemoved(DtEntityIdentifier eid);
121 
123  static void predicateCallback(DtVrfObject* vrfObject,
124  DtVrfObjectPredicateEvaluator* predicateEval, void* userData);
125  virtual void processPredicateCallback(DtVrfObject* vrfObject,
126  DtVrfObjectPredicateEvaluator* predicateEval);
127 
130  static void nodeAddedCallback(DtEntityIdentifier eid, void* userData);
131 
134  static void nodeRemovedCallback(DtEntityIdentifier eid, void* userData);
135 
136  virtual void processNodeAdded(DtEntityIdentifier eid);
137  virtual void processNodeRemoved(DtEntityIdentifier eid);
138 
139  static void objectRemovedCallback(DtVrfObject * vrfObject, void * usr);
140  virtual void processObjectRemoved(DtVrfObject * vrfObject);
141 
142  virtual void registerAggregateNodeCallbacks();
143  virtual void registerOrgViewCallbacks();
144  virtual void registerObjectManagerCallbacks();
147  void unregisterAggregateNodeCallbacks();
148  void unregisterOrgViewCallbacks();
149  void unregisterPredicateCallbacksForAllChildren();
150  void unregisterPredicateCallbacks(DtVrfObject& object);
151  void unregisterObjectManagerCallbacks();
153 
154  virtual void populateList();
155 
156 protected:
158  DtEntityIdentifier myAggregateId;
165  std::list<DtVrfObject*> myManagedObjectList;
166 };
167 
168 
169 
170 #endif
171 

Document ID: Generated on Mon Apr 8 19:24:01 EDT 2013 from SVN revision 125877
Copyright © 2005-2013 VT MÄK. All Rights Reserved (www.mak.com)