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