VR-Forces 4.1.1 Class Documentation
managedObjList.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 
13 #include "vrfobjcore/vrfObjPred.h"
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:
48  DtManagedObjectList& operator=(DtManagedObjectList& orig);
50 
51 protected:
55  const DtVrfObjectPredicate& predicate =
57  bool reevaluateFlag = false, DtTime evaluationPeriod = 0);
58 
60  virtual void init();
61 
62 public:
65  static DtManagedObjectListPtr create(
66  DtVrfObjectManager* objectManager,
67  const DtVrfObjectPredicate& predicate =
69  bool reevaluatePeriodically = false, DtTime evaluationPeriod = 0.0);
70 
72  virtual ~DtManagedObjectList();
73 
75  virtual const DtVrfObjectPredicate& predicate() const;
76 
78  virtual bool reevaluateFlag() const ;
79 
81  virtual DtTime evaluationPeriod() const;
82 
83  typedef std::list<DtVrfObject*>::iterator iterator;
84  typedef std::list<DtVrfObject*>::const_iterator const_iterator;
85 
89  virtual iterator begin();
90  virtual const_iterator begin() const;
91  virtual iterator end();
92  virtual const_iterator end() const;
93  virtual size_t size() const;
95 
98  virtual DtVrfObject* find(const DtEntityIdentifier& entityId) const;
99 
105  virtual void invalidate();
106 
107 
108 protected:
109  //add & remove using correct hash key type
110  virtual void add(DtVrfObject* obj);
111  virtual void remove(DtVrfObject* obj);
112 
114  virtual void populateList();
115 
117  static void objectAddedCallback(DtVrfObject * vrfObject, void * usr);
118  virtual void processObjectAdded(DtVrfObject * vrfObject);
119  static void objectRemovedCallback(DtVrfObject * vrfObject, void * usr);
120  virtual void processObjectRemoved(DtVrfObject * vrfObject);
121 
123  static void predicateCallback(DtVrfObject* vrfObject,
124  DtVrfObjectPredicateEvaluator* predicateEval, void* userData);
125  virtual void processPredicateCallback(DtVrfObject* vrfObject,
126  DtVrfObjectPredicateEvaluator* predicateEval);
127 
128 protected:
134  std::list<DtVrfObject*> myFilteredObjectList;
135 };
136 

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)