Changeset 9807 in orxonox.OLD for branches/new_class_id/src/lib/lang/object_list.h
- Timestamp:
- Sep 24, 2006, 11:26:48 PM (18 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/new_class_id/src/lib/lang/object_list.h
r9757 r9807 104 104 //! Only used to unsubscribe a BaseObject. (just try to make a valid iterator, stupid :)) 105 105 virtual void unregisterObject(IteratorBase* _iterators) = 0; 106 //! Only for debug purposes 107 virtual bool checkIteratorInList(IteratorBase* _iterator) const = 0; 108 virtual bool checkObjectInList(BaseObject* obj) const = 0; 106 109 107 110 protected: … … 226 229 ObjectListBase::IteratorBase* registerObject(T* object); 227 230 virtual void unregisterObject(IteratorBase* iterator); 228 231 bool checkIteratorInList(IteratorBase* iterator) const; 232 bool checkObjectInList(BaseObject* obj) const; 229 233 protected: 230 234 virtual void getBaseObjectList(ObjectListBase::base_list* list) const; … … 345 349 } 346 350 351 template <class T> 352 bool ObjectList<T>::checkIteratorInList(IteratorBase* iterator) const 353 { 354 const_iterator it; 355 for (it = this->_objects.begin(); it != this->_objects.end(); ++it) 356 if (static_cast<Iterator*>(iterator)->it() == it) 357 return true; 358 printf("ObjectList:: checkIteratorInList:: ITERATOR NOT IN THE LIST '%s' (UN-SYNC SHOULD NOT HAPPEN!!)\n", this->name().c_str()); 359 return false; 360 } 361 362 template <class T> 363 bool ObjectList<T>::checkObjectInList(BaseObject* obj) const 364 { 365 T* object = dynamic_cast<T*>(obj); 366 if (object != NULL) 367 { 368 printf("EXTREME BUG: Object does not exist anymore!! (or a bug in ObjectList)\n"); 369 return false;; 370 } 371 372 const_iterator it; 373 for (it = this->_objects.begin(); it != this->_objects.end(); ++it) 374 { 375 if (*it == object) 376 return true; 377 } 378 printf("ObjectList:: checkObjectInList:: OBJECT NOT IN THE LIST '%s' (UN-SYNC SHOULD NOT HAPPEN!!)\n", this->name().c_str()); 379 return false; 380 } 381 382 347 383 #endif /* _OBJECT_LIST_H */
Note: See TracChangeset
for help on using the changeset viewer.