/*! * @file object_manager.h */ #ifndef _OBJECT_MANAGER_H #define _OBJECT_MANAGER_H #include "base_object.h" // FORWARD DECLARATION // class GarbageCollector; template class tList; //////////////////// // OBJECT MANAGER // //////////////////// //! the object manager itself class ObjectManager : public BaseObject { public: virtual ~ObjectManager(); /** @returns a Pointer to the only object of this Class */ inline static ObjectManager* getInstance() { if (!singletonRef) singletonRef = new ObjectManager(); return singletonRef; }; void registerClass(ClassID classID); BaseObject* resurrect(); void kill(BaseObject* object); void debug() const; private: ObjectManager(); private: static ObjectManager* singletonRef; //!< The singleton reference to the only reference of this class }; #endif /* _OBJECT_MANAGER_H */