Library: Foundation
Package: SharedLibrary
Header: Poco/MetaObject.h
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.
Member Functions: autoDelete, canCreate, create, destroy, instance, isAutoDelete, name
AbstractMetaObject(
const char * name
);
virtual ~AbstractMetaObject();
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 canCreate() const = 0;
Returns true if and only if the create method can be used to create instances of the class. Returns false if the class is a singleton.
virtual B * create() const = 0;
Create a new instance of a class. Cannot be used for singletons.
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.
virtual B & instance() const = 0;
Returns a reference to the only instance of the class. Used for singletons only.
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.
const char * name() const;