Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

source: orxonox.OLD/trunk/src/lib/lang/new_class_id.h @ 9667

Last change on this file since 9667 was 9667, checked in by bensch, 18 years ago

trunk: iterator-insertion works

File size: 826 bytes
RevLine 
[4838]1/*!
[9659]2 * @file new_class_id.h
3 * @brief Definition of a dynamically allocating ClassID
4 *
5 */
[1853]6
[9659]7#ifndef _NEW_CLASS_ID_H
8#define _NEW_CLASS_ID_H
[1853]9
[9659]10#include "type_info.h"
11#include <string>
[9666]12#include <list>
[9663]13#include "new_object_list.h"
14
[9665]15
16
17
[9659]18//! A class to dynamically allocate ClassID's and support a isA operator
19class NewClassID
20{
21public:
22  NewClassID();
23  ~NewClassID();
[3245]24
[9664]25  template<class T> void registerObject(T* object, NewObjectList<T>& list);
[9663]26
[9659]27private:
[9664]28  NewObjectListBase*            _objectList;
[9667]29  std::list<NewObjectListBase::IteratorBase*>  _iterators; //!< Iterators to the class-list's positions.
[1853]30};
31
[9659]32
[9664]33template<class T> void NewClassID::registerObject(T* object, NewObjectList<T>& objectList)
34{
35  this->_objectList = &objectList;
[9666]36  _iterators.push_back(objectList.registerObject(object));
[9664]37}
38
[9659]39#endif /* _NEW_CLASS_ID_H */
Note: See TracBrowser for help on using the repository browser.