VR-Forces 4.7 Class Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
managedObjectList.h
Go to the documentation of this file.
1 /*******************************************************************************
2 ** Copyright (c) 2005 MAK Technologies, Inc.
3 ** All rights reserved.
4 *******************************************************************************/
5 
8 
10 
11 #pragma once
12 
14 
15 #include <vlutil/vlConfig.h>
16 #include <list>
17 #include <vlutil/vlSmartPointers.h>
18 #include <vlutil/vlTime.h>
19 
20 class DtVrfObjectManager;
23 class DtVrfObject;
24 class DtEntityIdentifier;
25 
28 typedef DtBoost::shared_ptr<DtManagedObjectList> DtManagedObjectListPtr;
31 typedef DtBoost::shared_ptr<const DtManagedObjectList> DtManagedObjectListConstPtr;
32 
42 {
43 private:
47  DtManagedObjectList& operator=(DtManagedObjectList& orig);
49 
50 protected:
54  const DtVrfObjectPredicate& predicate =
56  bool reevaluateFlag = false, DtTime evaluationPeriod = 0);
57 
59  virtual void init();
60 
62 
63 public:
66  static DtManagedObjectListPtr create(
67  DtVrfObjectManager* objectManager,
68  const DtVrfObjectPredicate& predicate =
70  bool reevaluatePeriodically = false, DtTime evaluationPeriod = 0.0);
71 
73  virtual ~DtManagedObjectList();
74 
76  virtual const DtVrfObjectPredicate& predicate() const;
77 
79  virtual bool reevaluateFlag() const ;
80 
82  virtual DtTime evaluationPeriod() const;
83 
84  typedef std::list<DtVrfObject*>::iterator iterator;
85  typedef std::list<DtVrfObject*>::const_iterator const_iterator;
86 
87  static DtManagedObjectListPtr nullList();
88 
92  virtual iterator begin();
93  virtual const_iterator begin() const;
94  virtual iterator end();
95  virtual const_iterator end() const;
96  virtual size_t size() const;
98 
101  virtual DtVrfObject* find(const DtEntityIdentifier& entityId) const;
102 
108  virtual void invalidate();
109 
110 
111 protected:
112  //add & remove using correct hash key type
113  virtual void add(DtVrfObject* obj);
114  virtual void remove(DtVrfObject* obj);
115 
117  virtual void populateList();
118 
120  static void objectAddedCallback(DtVrfObject * vrfObject, void * usr);
121  virtual void processObjectAdded(DtVrfObject * vrfObject);
122  static void objectRemovedCallback(DtVrfObject * vrfObject, void * usr);
123  virtual void processObjectRemoved(DtVrfObject * vrfObject);
124 
126  static void predicateCallback(DtVrfObject* vrfObject,
127  DtVrfObjectPredicateEvaluator* predicateEval, void* userData);
128  virtual void processPredicateCallback(DtVrfObject* vrfObject,
129  DtVrfObjectPredicateEvaluator* predicateEval);
130 
131 protected:
137  std::list<DtVrfObject*> myFilteredObjectList;
138 };
139 

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)