Qore Programming Language
0.9.16
|
creates a builtin class More...
#include <QoreClass.h>
Public Member Methods | |
DLLEXPORT | QoreBuiltinClass (const char *name, int64 n_domain=QDOM_DEFAULT) |
creates the object and marks it as a builtin class | |
DLLEXPORT | QoreBuiltinClass (const QoreBuiltinClass &old) |
copies the object | |
Public Member Methods inherited from QoreClass | |
DLLEXPORT | QoreClass (const char *n_name, int n_domain) |
creates the QoreClass object and assigns the name and the functional domain More... | |
DLLEXPORT | QoreClass (const char *n_name, int64 n_domain, const QoreTypeInfo *n_typeInfo) |
creates the QoreClass object and assigns the name, the functional domain, and a custom QoreTypeInfo object created with AbstractQoreClassTypeInfoHelper More... | |
DLLEXPORT | QoreClass (const char *n_name, int64 n_domain=QDOM_DEFAULT) |
creates the QoreClass object and assigns the name and the functional domain More... | |
DLLEXPORT | QoreClass (const QoreClass &old) |
copy constructor More... | |
DLLEXPORT | QoreClass (std::string &&n_name, int64 n_domain=QDOM_DEFAULT) |
creates the QoreClass object and assigns the name and the functional domain More... | |
DLLEXPORT void | addAbstractMethod (const char *n_name, ClassAccess access, int64 n_flags, const QoreTypeInfo *returnTypeInfo, const type_vec_t &n_typeList, const arg_vec_t &defaultArgList=arg_vec_t(), const name_vec_t &n_names=name_vec_t()) |
adds an unimplemented abstract method variant to the class with return and parameter type info | |
DLLEXPORT void | addAbstractMethod (const char *n_name, ClassAccess access=Public, int64 n_flags=QCF_NO_FLAGS, const QoreTypeInfo *returnTypeInfo=0, unsigned num_params=0,...) |
adds an unimplemented abstract method variant to the class with extended information; with return and parameter type info | |
DLLEXPORT void | addBaseClass (QoreClass *qc, bool virt=false) |
Adds a base class to the current class. More... | |
DLLEXPORT void | addBuiltinBaseClass (QoreClass *qc) |
make a builtin class a child of another builtin class More... | |
DLLEXPORT void | addBuiltinConstant (const char *name, QoreValue value, ClassAccess access=Public, const QoreTypeInfo *typeInfo=nullptr) |
adds a class constant to the class More... | |
DLLEXPORT void | addBuiltinStaticVar (const char *name, QoreValue value, ClassAccess access=Public, const QoreTypeInfo *typeInfo=nullptr) |
adds a static variable to the class More... | |
DLLEXPORT void | addBuiltinVirtualBaseClass (QoreClass *qc) |
sets "virtual" base class for a class, meaning that the base class data is appropriate for use in the subclass builtin methods More... | |
DLLEXPORT void | addConstructor (const void *ptr, q_external_constructor_t meth, ClassAccess access=Public, int64 n_flags=QCF_NO_FLAGS, int64 n_domain=QDOM_DEFAULT, const type_vec_t &n_typeList=type_vec_t(), const arg_vec_t &defaultArgList=arg_vec_t(), const name_vec_t &n_names=name_vec_t()) |
adds a constructor method variant with the external calling convention and includes the access specifier, additional functional domain info, and parameter type info More... | |
DLLEXPORT void | addConstructor (q_constructor_n_t meth, ClassAccess access=Public, int64 n_flags=QCF_NO_FLAGS, int64 n_domain=QDOM_DEFAULT, unsigned num_params=0,...) |
adds a constructor method variant with the access specifier, additional functional domain info, and parameter type info | |
DLLEXPORT void | addDefaultBuiltinBaseClass (QoreClass *qc) |
make a builtin class a child of another builtin class and ensures that the given class's private data will be used in all class methods More... | |
DLLEXPORT void | addMember (const char *mem, ClassAccess access, const QoreTypeInfo *n_typeInfo, QoreValue initial_value=QoreValue()) |
adds a member | |
DLLEXPORT void | addMethod (const char *n_name, q_method_n_t meth, ClassAccess access=Public, int64 n_flags=QCF_NO_FLAGS, int64 n_domain=QDOM_DEFAULT, const QoreTypeInfo *returnTypeInfo=0, unsigned num_params=0,...) |
adds a builtin method variant to a class More... | |
DLLEXPORT void | addMethod (const void *ptr, const char *n_name, q_external_method_t meth, ClassAccess access=Public, int64 n_flags=QCF_NO_FLAGS, int64 n_domain=QDOM_DEFAULT, const QoreTypeInfo *returnTypeInfo=0, const type_vec_t &n_typeList=type_vec_t(), const arg_vec_t &defaultArgList=arg_vec_t(), const name_vec_t &n_names=name_vec_t()) |
adds a builtin method variant to a class with the calling convention for external modules More... | |
DLLEXPORT void | addStaticMethod (const char *n_name, q_func_n_t meth, ClassAccess access=Public, int64 n_flags=QCF_NO_FLAGS, int64 n_domain=QDOM_DEFAULT, const QoreTypeInfo *returnTypeInfo=0, unsigned num_params=0,...) |
adds a builtin static method with extended information; additional functional domain info, return and parameter type info | |
DLLEXPORT void | addStaticMethod (const void *ptr, const char *n_name, q_external_static_method_t meth, ClassAccess access=Public, int64 n_flags=QCF_NO_FLAGS, int64 n_domain=QDOM_DEFAULT, const QoreTypeInfo *returnTypeInfo=0, const type_vec_t &n_typeList=type_vec_t(), const arg_vec_t &defaultArgList=arg_vec_t(), const name_vec_t &n_names=name_vec_t()) |
adds a builtin static method with extended information; additional functional domain info, return and parameter type info More... | |
virtual DLLEXPORT QoreClass * | copy () |
Called when a class is copied. More... | |
virtual DLLEXPORT QoreClass * | copyImport () |
Called when a class is copied for import. More... | |
DLLEXPORT QoreValue | evalPseudoMethod (const QoreMethod *m, const QoreExternalMethodVariant *variant, const QoreValue n, const QoreListNode *args, ExceptionSink *xsink) const |
evaluates a pseudo-method on a pseudo-class More... | |
DLLEXPORT QoreValue | evalPseudoMethod (const QoreValue n, const char *nme, const QoreListNode *args, ExceptionSink *xsink) const |
evaluates a pseudo-method on a pseudo-class More... | |
DLLEXPORT QoreObject * | execConstructor (const QoreClass &obj_cls, const QoreListNode *args, bool allow_abstract, ExceptionSink *xsink) const |
Creates a new object and executes the constructor and returns the new object. More... | |
DLLEXPORT QoreObject * | execConstructor (const QoreListNode *args, ExceptionSink *xsink) const |
creates a new object and executes the constructor on it and returns the new object More... | |
DLLEXPORT QoreObject * | execConstructorVariant (const QoreExternalMethodVariant *mv, const QoreListNode *args, ExceptionSink *xsink) const |
creates a new object and executes the constructor on it and returns the new object More... | |
DLLEXPORT QoreObject * | execCopy (QoreObject *old, ExceptionSink *xsink) const |
executes a class's "copy" method on an object and returns the new object (or 0 in the case of an exception) More... | |
DLLEXPORT QoreObject * | execSystemConstructor (int code=0,...) const |
creates a new "system" object for use as the value of a constant, executes the system constructor on it and returns the new object More... | |
const DLLEXPORT QoreExternalConstant * | findConstant (const char *name) const |
Finds the given constant or returns nullptr if not found. More... | |
const DLLEXPORT QoreExternalNormalMember * | findLocalMember (const char *name) const |
Finds the given local member or returns nullptr. More... | |
const DLLEXPORT QoreMethod * | findLocalMethod (const char *name) const |
finds a normal (non-static) method in the class hierarchy More... | |
const DLLEXPORT QoreExternalStaticMember * | findLocalStaticMember (const char *name) const |
Finds the given local static member or returns nullptr. More... | |
const DLLEXPORT QoreMethod * | findLocalStaticMethod (const char *name) const |
finds a static method in the class hierarchy More... | |
const DLLEXPORT QoreMethod * | findMethod (const char *nme) const |
finds a normal (non-static) method in the class hierarchy More... | |
const DLLEXPORT QoreMethod * | findMethod (const char *nme, ClassAccess &access) const |
finds a normal (non-static) method in the class hierarchy at runtime and sets the access code More... | |
const DLLEXPORT QoreMethod * | findStaticMethod (const char *nme) const |
finds a static method in the class hierarchy More... | |
const DLLEXPORT QoreMethod * | findStaticMethod (const char *nme, ClassAccess &access) const |
finds a static method in the class hierarchy and sets the priv flag if it's a private method or not More... | |
const DLLEXPORT QoreExternalMethodVariant * | findUserMethodVariant (const char *name, const QoreMethod *&method, const type_vec_t &argTypeList) const |
returns the user variant for the given non-static method and argument types More... | |
DLLEXPORT BinaryNode * | getBinaryHash () const |
returns a binary hash for the class's API More... | |
const DLLEXPORT QoreClass * | getClass (const QoreClass &qc, bool &priv) const |
returns a pointer to the QoreClass object representing the class ID passed if it exists in the class hierarchy and sets a flag indicating if it's privately inherited or not More... | |
DLLEXPORT QoreClass * | getClass (qore_classid_t cid) const |
returns a pointer to the QoreClass object representing the class ID passed if it exists in the class hierarchy More... | |
const DLLEXPORT QoreClass * | getClass (qore_classid_t cid, bool &priv) const |
returns a pointer to the QoreClass object representing the class ID passed if it exists in the class hierarchy and sets a flag indicating if it's privately inherited or not More... | |
const DLLEXPORT QoreMethod * | getConstructor () const |
returns a const pointer to the QoreMethod object of the constuctor method, if any is set More... | |
const DLLEXPORT QoreMethod * | getCopyMethod () const |
returns a const pointer to the QoreMethod object of the destructor method, if any is set More... | |
DLLEXPORT q_deserializer_t | getDeserializer () const |
returns the deserializer method or nullptr if not present More... | |
const DLLEXPORT QoreMethod * | getDestructor () const |
returns a const pointer to the QoreMethod object of the constructor method, if any is set More... | |
DLLEXPORT int64 | getDomain () const |
returns the functional domain of the class More... | |
DLLEXPORT qore_classid_t | getID () const |
returns the class ID of this class | |
DLLEXPORT AbstractQoreClassUserData * | getManagedUserData () const |
retrieves the user-specific data pointer More... | |
template<typename T > | |
DLLLOCAL T * | getManagedUserData () const |
retrieves the user-specific data pointer More... | |
const DLLEXPORT QoreMethod * | getMemberGateMethod () const |
returns a const pointer to the QoreMethod object of the memberGate method, if any is set More... | |
const DLLEXPORT QoreMethod * | getMemberNotificationMethod () const |
returns a const pointer to the QoreMethod object of the memberNotification method, if any is set More... | |
const DLLEXPORT QoreMethod * | getMethodGate () const |
returns a const pointer to the QoreMethod object of the methodGate method, if any is set More... | |
DLLEXPORT QoreListNode * | getMethodList () const |
returns a list strings of all non-static methods in the class, the caller owns the reference count returned More... | |
const DLLEXPORT char * | getModuleName () const |
Returns the module name the class was loaded from or nullptr if it is a builtin class. More... | |
const DLLEXPORT char * | getName () const |
returns the class name | |
const DLLEXPORT QoreNamespace * | getNamespace () const |
Returns the namespace that owns this class. More... | |
DLLEXPORT std::string | getNamespacePath (bool anchored=false) const |
returns the full namespace path of the class More... | |
const DLLEXPORT QoreTypeInfo * | getOrNothingTypeInfo () const |
returns the "or nothing" type information structure for this class | |
DLLEXPORT QoreProgram * | getProgram () const |
Returns the owning QoreProgram object (if not the static system namespace) More... | |
DLLEXPORT qore_type_t | getPseudoClassType () const |
returns a pseudo-classes base type More... | |
DLLEXPORT q_serializer_t | getSerializer () const |
returns the serializer method or nullptr if not present More... | |
DLLEXPORT QoreListNode * | getStaticMethodList () const |
returns a list strings of all static methods in the class, the caller owns the reference count returned More... | |
const DLLEXPORT QoreMethod * | getSystemConstructor () const |
returns a const pointer to the QoreMethod object of the constuctor method, if any is set More... | |
const DLLEXPORT QoreTypeInfo * | getTypeInfo () const |
returns the type information structure for this class | |
const DLLEXPORT void * | getUserData () const |
retrieves the user-specific data pointer More... | |
DLLEXPORT bool | hasCopy () const |
returns true if the class implements a copy method | |
DLLEXPORT bool | hasMemberGate () const |
returns true if the class implements a "memberGate" method | |
DLLEXPORT bool | hasMemberNotification () const |
returns true if the class implements a "memberNotification" method | |
DLLEXPORT bool | hasMethodGate () const |
returns true if the class implements a "methodGate" method | |
DLLEXPORT bool | hasTransientMember () const |
Returns true if the class has at least one locally-declared transient member. More... | |
DLLEXPORT bool | inHierarchy (const QoreClass &cls, ClassAccess &n_access) const |
Returns true if the class passed as an argument is present in the current class's hierachy, even if not accessible from the class due to private:internal inheritance. More... | |
DLLEXPORT bool | isAbstract () const |
returns true if the class has at least one unimplemented abstract method variant More... | |
DLLEXPORT bool | isEqual (const QoreClass &cls) const |
returns true if the classes are equal More... | |
DLLEXPORT bool | isFinal () const |
returns true if the class is final More... | |
DLLEXPORT bool | isInjected () const |
returns true if the class has been injected as a dependency injection More... | |
DLLEXPORT bool | isModulePublic () const |
returns true if the class has its module public flag set More... | |
DLLEXPORT bool | isPrivateMember (const char *str) const |
returns true if the member is private More... | |
DLLEXPORT bool | isPseudoClass () const |
returns true if the class is a pseudo class More... | |
DLLEXPORT bool | isPublicOrPrivateMember (const char *str, bool &priv) const |
returns true if the member is private or public More... | |
DLLEXPORT bool | isSystem () const |
returns true if the class is a builtin class | |
DLLEXPORT int | numMethods () const |
returns the number of non-static methods in this class (user and builtin) | |
DLLEXPORT int | numStaticMethods () const |
returns the number of static methods in this class (user and builtin) | |
DLLEXPORT int | numStaticUserMethods () const |
returns the number of static user methods in this class | |
DLLEXPORT int | numUserMethods () const |
returns the number of non-static user methods in this class | |
DLLEXPORT void | recheckBuiltinMethodHierarchy () |
rechecks for inherited methods in base classes when adding builtin classes | |
DLLEXPORT void | rescanParents () |
rescan builtin parent classes in a class hierarchy; to be used with out-of-order class hierarchy construction More... | |
DLLEXPORT int | runtimeCheckInstantiateClass (ExceptionSink *xsink) const |
Throws a Qore-language exception if the class cannot be instantiated. More... | |
DLLEXPORT void | setCopy (const void *ptr, q_external_copy_t m) |
sets the builtin copy method for the class using the new generic calling convention More... | |
DLLEXPORT void | setCopy (q_copy_t m) |
sets the builtin copy method for the class More... | |
DLLEXPORT void | setDeleteBlocker (q_delete_blocker_t m) |
sets the deleteBlocker method for the class More... | |
DLLEXPORT void | setDeserializer (q_deserializer_t m) |
sets the deserializer method for builtin classes More... | |
DLLEXPORT void | setDestructor (const void *ptr, q_external_destructor_t m) |
sets the builtin destructor method for the class with the external calling convention More... | |
DLLEXPORT void | setDestructor (q_destructor_t m) |
sets the builtin destructor method for the class More... | |
DLLEXPORT void | setFinal () |
sets the final flag of the class | |
DLLEXPORT void | setGateAccessFlag () |
sets the class's gate access flag so that memberGate() and methodGate() methods will be called with an extra boolean argument giving the current class access before the call More... | |
DLLEXPORT void | setManagedUserData (AbstractQoreClassUserData *cud) |
sets a pointer to user-specific data in the class More... | |
DLLEXPORT void | setPublicMemberFlag () |
sets the class's public member flag so that undeclared member references will fail More... | |
DLLEXPORT void | setSerializer (q_serializer_t m) |
sets the serializer method for builtin classes More... | |
DLLEXPORT void | setSynchronousClass () |
call this function if your builtin class requires *all* methods (except the constructor) to be run in an RMutex lock More... | |
DLLEXPORT void | setSystem () |
marks the class as a builtin class | |
DLLEXPORT void | setSystemConstructor (q_system_constructor_t m) |
sets the builtin constructor for system objects (ex: used as constant values) More... | |
DLLEXPORT void | setUserData (const void *ptr) |
sets a pointer to user-specific data in the class More... | |
Private Member Methods | |
DLLEXPORT | QoreBuiltinClass () |
for use with QoreClass::copyImport() | |
Private Member Methods inherited from QoreClass | |
DLLEXPORT | QoreClass () |
For use with QoreClass::copyImport() | |
virtual DLLEXPORT | ~QoreClass () |
Deletes the object and frees all memory. | |
creates a builtin class