template class Poco::AbstractMetaObject
Overview
A MetaObject stores some information about a C++ class. Moreā¦
#include <MetaObject.h> template <class B> class AbstractMetaObject { public: // construction AbstractMetaObject(const char* name); // methods const char* name() const; virtual B* create() const = 0; virtual B& instance() const = 0; virtual bool canCreate() const = 0; virtual void destroy(B* pObject) const; B* autoDelete(B* pObject) const; virtual bool isAutoDelete(B* pObject) const; }; // direct descendants template < class C, class B > class MetaObject; template < class C, class B > class MetaSingleton;
Detailed Documentation
A MetaObject stores some information about a C++ class.
The MetaObject class is used by the Manifest class. AbstractMetaObject is a common base class for all MetaObject in a rooted class hierarchy. A MetaObject can also be used as an object factory for its class.
Methods
virtual B* create() const = 0
Create a new instance of a class.
Cannot be used for singletons.
virtual B& instance() const = 0
Returns a reference to the only instance of the class.
Used for singletons only.
virtual bool canCreate() const = 0
Returns true iff the create method can be used to create instances of the class.
Returns false if the class is a singleton.
virtual void destroy(B* pObject) const
If pObject was owned by meta object, the ownership of the deleted object is removed and the object is deleted.
B* autoDelete(B* pObject) const
Give ownership of pObject to the meta object.
The meta object will delete all objects it owns when it is destroyed.
Returns pObject.
virtual bool isAutoDelete(B* pObject) const
Returns true if the object is owned by meta object.
Overloaded in MetaSingleton - returns true if the class is a singleton.