template < class B >

class AbstractMetaObject

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 Summary

Member Functions: autoDelete, canCreate, create, destroy, instance, isAutoDelete, name


AbstractMetaObject inline

    const char * name


~AbstractMetaObject virtual inline

virtual ~AbstractMetaObject();

Member Functions

autoDelete inline

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.

canCreate virtual

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.

create virtual

virtual B * create() const = 0;

Create a new instance of a class. Cannot be used for singletons.

destroy virtual inline

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.

instance virtual

virtual B & instance() const = 0;

Returns a reference to the only instance of the class. Used for singletons only.

isAutoDelete virtual inline

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.

name inline

const char * name() const;