class CCL::MetaClass
Overview
Runtime meta class for library objects. More…
#include <metaclass.h> class MetaClass: public CCL::AbstractTypeInfo { public: // structs struct Attribute; struct AttributeModifier; struct CategoryModifier; struct ClassFlagsModifier; struct ClassIDModifier; struct ConstructorModifier; struct DescriptionModifier; struct MethodNamesModifier; struct NamespaceModifier; struct PropertyNamesModifier; // fields DECLARE_UNKNOWN; // construction MetaClass ( const MetaClass* parentClass, CStringPtr className, Object* (*) () constructor, CStringPtr persistentName = nullptr, bool hidden = false ); // methods bool isRegistered () const; bool isClass (const MetaClass& mc) const; bool canCast (const MetaClass& mc) const; bool operator == (const MetaClass& mc) const; PROPERTY_READONLY_FLAG (flags, kSingleton, isSingleton) const; void setPersistentName (CStringPtr name); CStringPtr getNamespaceName () const; CStringPtr getCategoryName () const; CStringPtr getDescription () const; virtual UIDRef CCL_API getClassID () const; Object* createObject () const; const MetaClass* getParentClass () const; int countAttributes () const; CStringPtr getAttributeName (int index) const; void getAttributeValue (Variant& value, int index) const; void removeAttribute (CStringPtr name); static MetaClass IUnknown* createInstance (UIDRef cid, void* userData); };
Inherited Members
public: // enums enum DataTypes; enum Flags; // structs struct MethodDefinition; struct PropertyDefinition; // methods virtual tresult CCL_API queryInterface (UIDRef iid, void** ptr) = 0; virtual unsigned int CCL_API retain () = 0; virtual unsigned int CCL_API release () = 0; virtual const ITypeInfo*CCL_API getParentType () const = 0; virtual int CCL_API getClassFlags () const = 0; virtual CStringPtr CCL_API getClassName () const = 0; virtual CStringPtr CCL_API getClassNamespace () const = 0; virtual UIDRef CCL_API getClassID () const = 0; virtual const MethodDefinition*CCL_API getMethodNames () const = 0; virtual const PropertyDefinition*CCL_API getPropertyNames () const = 0; virtual ModuleRef CCL_API getModuleReference () const = 0; virtual IUnknown*CCL_API createInstance () const = 0; virtual const ITypeInfo*CCL_API getParentType () const; virtual int CCL_API getClassFlags () const; virtual CStringPtr CCL_API getClassName () const; virtual CStringPtr CCL_API getClassNamespace () const; virtual UIDRef CCL_API getClassID () const; virtual const MethodDefinition*CCL_API getMethodNames () const; virtual const PropertyDefinition*CCL_API getPropertyNames () const; virtual ModuleRef CCL_API getModuleReference () const; virtual IUnknown*CCL_API createInstance () const;
Detailed Documentation
Runtime meta class for library objects.
<>
Methods
bool isRegistered () const
Check if meta class is registered.
bool isClass (const MetaClass& mc) const
Compare meta class.
bool canCast (const MetaClass& mc) const
Compare meta class for dynamic cast.
bool operator == (const MetaClass& mc) const
Compare meta class.
PROPERTY_READONLY_FLAG (flags, kSingleton, isSingleton) const
Get persistent class name.
void setPersistentName (CStringPtr name)
Set persistent class name.
CStringPtr getNamespaceName () const
Get namespace as string (can be null).
CStringPtr getCategoryName () const
Get category as string (can be null).
CStringPtr getDescription () const
Get description (can be null).
virtual UIDRef CCL_API getClassID () const
Get unique class identifier [ITypeInfo].
Object* createObject () const
Create object instance of this class.
const MetaClass* getParentClass () const
Get meta class of parent class (returns null for base class).
int countAttributes () const
Get number of class attributes.
CStringPtr getAttributeName (int index) const
Get attribute name at given index.
void getAttributeValue (Variant& value, int index) const
Get attribute value at given index.
void removeAttribute (CStringPtr name)
Remove attribute with given name.
static MetaClass IUnknown* createInstance (UIDRef cid, void* userData)
Create function for use with factory and meta class in userData.