- Timestamp:
- Mar 29, 2013, 2:33:04 PM (11 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
code/branches/core6/src/libraries/core/object/ObjectListBase.h
r9597 r9599 79 79 80 80 81 // ######################################## 82 // ### ObjectListElementRemovalListener ### 83 // ######################################## 84 /// Gets called by the object list if an element is removed 85 class _CoreExport ObjectListElementRemovalListener 86 { 87 public: 88 virtual ~ObjectListElementRemovalListener() {} 89 virtual void removedElement(ObjectListBaseElement* element) = 0; 90 }; 91 81 92 // ############################### 82 93 // ### ObjectListBase ### … … 119 130 inline ObjectListBaseElement* rend() { return 0; } 120 131 121 inline void register Iterator(void* iterator) { this->iterators_.push_back(iterator); }122 inline void unregister Iterator(void* iterator)132 inline void registerRemovalListener(ObjectListElementRemovalListener* listener) { this->listeners_.push_back(listener); } 133 inline void unregisterRemovalListener(ObjectListElementRemovalListener* listener) 123 134 { 124 for (unsigned int i = 0; i < this-> iterators_.size(); ++i)135 for (unsigned int i = 0; i < this->listeners_.size(); ++i) 125 136 { 126 if ( iterators_[i] == iterator)137 if (listeners_[i] == listener) 127 138 { 128 iterators_.erase(iterators_.begin() + i);139 listeners_.erase(listeners_.begin() + i); 129 140 break; 130 141 } 131 142 } 132 143 } 133 inline void registerObjectListIterator(void* iterator) { this->objectListIterators_.push_back(iterator); }134 inline void unregisterObjectListIterator(void* iterator)135 {136 for (unsigned int i = 0; i < this->objectListIterators_.size(); ++i)137 {138 if (objectListIterators_[i] == iterator)139 {140 objectListIterators_.erase(objectListIterators_.begin() + i);141 break;142 }143 }144 }145 void notifyIterators(Listable* object) const;146 144 147 145 private: 148 ObjectListBaseElement* first_; //!< The first element in the list 149 ObjectListBaseElement* last_; //!< The last element in the list 150 std::vector<void*> iterators_; //!< A list of Iterators pointing on an element in this list 151 std::vector<void*> objectListIterators_; //!< A list of ObjectListIterators pointing on an element in this list 146 void notifyRemovalListeners(ObjectListBaseElement* element) const; 147 148 ObjectListBaseElement* first_; //!< The first element in the list 149 ObjectListBaseElement* last_; //!< The last element in the list 150 std::vector<ObjectListElementRemovalListener*> listeners_; //!< A list of Iterators pointing on an element in this list 152 151 }; 153 152 }
Note: See TracChangeset
for help on using the changeset viewer.