Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

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

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

trunk: going towards the implementation

File size: 781 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
30  std::list<NewObjectListBase::IteratorBase*>  _iterators;
31};
32
33
34template<class T> void NewClassID::registerObject(T* object, NewObjectList<T>& objectList)
35{
36  this->_objectList = &objectList;
37  _iterators.push_back(objectList.registerObject(object));
38}
39
40#endif /* _NEW_CLASS_ID_H */
Note: See TracBrowser for help on using the repository browser.