Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

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

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

orxonox/trunk: ClassList objectively implemented. This is not the fastest, but the most modular approach.
Now is the question of redundancy in code writing:
Should the ClassWriter explicitely declare a Class with superclasses, or should on runtime each object decide for itself, as it is done in BaseObject at the moment… questions questions questions…

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