Qore Programming Language 1.19.5
Loading...
Searching...
No Matches
QoreBuiltinClass Class Reference

creates a builtin class More...

#include <QoreClass.h>

Inheritance diagram for QoreBuiltinClass:
[legend]
Collaboration diagram for QoreBuiltinClass:
[legend]

Public Member Methods

DLLEXPORT QoreBuiltinClass (const char *name, const char *path, int64 n_domain=QDOM_DEFAULT)
 creates the object and marks it as a builtin class
 
DLLEXPORT QoreBuiltinClass (const QoreBuiltinClass &old)
 copies the object
 
DLLEXPORT QoreBuiltinClass (QoreProgram *pgm, const char *name, const char *path, int64 n_domain=QDOM_DEFAULT)
 Creates the object and marks it as a builtin class. More...
 
DLLEXPORT void setModulePublic (bool v)
 Sets the module public flag (default true)
 
- Public Member Methods inherited from QoreClass
DLLEXPORT QoreClass (const char *n_name, const char *ns_path, 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, const char *ns_path, 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, std::string &&ns_path, 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 QoreClasscopy ()
 Called when a class is copied. More...
 
virtual DLLEXPORT QoreClasscopyImport ()
 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 QoreObjectexecConstructor (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 QoreObjectexecConstructor (const QoreListNode *args, ExceptionSink *xsink) const
 creates a new object and executes the constructor on it and returns the new object More...
 
DLLEXPORT QoreObjectexecConstructorVariant (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 QoreObjectexecCopy (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 QoreObjectexecSystemConstructor (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...
 
DLLEXPORT const QoreExternalConstantfindConstant (const char *name) const
 Finds the given constant or returns nullptr if not found. More...
 
DLLEXPORT const QoreExternalNormalMemberfindLocalMember (const char *name) const
 Finds the given local member or returns nullptr. More...
 
DLLEXPORT const QoreMethodfindLocalMethod (const char *name) const
 finds a normal (non-static) method in the class hierarchy More...
 
DLLEXPORT const QoreExternalStaticMemberfindLocalStaticMember (const char *name) const
 Finds the given local static member or returns nullptr. More...
 
DLLEXPORT const QoreMethodfindLocalStaticMethod (const char *name) const
 finds a static method in the class hierarchy More...
 
DLLEXPORT const QoreMethodfindMethod (const char *nme) const
 finds a normal (non-static) method in the class hierarchy More...
 
DLLEXPORT const QoreMethodfindMethod (const char *nme, ClassAccess &access) const
 finds a normal (non-static) method in the class hierarchy at runtime and sets the access code More...
 
DLLEXPORT const QoreMethodfindStaticMethod (const char *nme) const
 finds a static method in the class hierarchy More...
 
DLLEXPORT const QoreMethodfindStaticMethod (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...
 
DLLEXPORT const QoreExternalMethodVariantfindUserMethodVariant (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 BinaryNodegetBinaryHash () const
 returns a binary hash for the class's API More...
 
DLLEXPORT const QoreClassgetClass (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 const QoreClassgetClass (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...
 
DLLEXPORT const QoreClassgetClass (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...
 
DLLEXPORT const QoreMethodgetConstructor () const
 returns a const pointer to the QoreMethod object of the constuctor method, if any is set More...
 
DLLEXPORT const QoreMethodgetCopyMethod () 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...
 
DLLEXPORT const QoreMethodgetDestructor () 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 QoreClassgetInjectedAsClass ()
 returns the class pointer for any injection target class if this class was injected, otherwise nullptr More...
 
DLLEXPORT const QoreClassgetInjectedAsClass () const
 returns the class pointer for any injection target class if this class was injected, otherwise nullptr More...
 
DLLEXPORT const char * getLanguage () const
 Returns the language this class is written in. More...
 
DLLEXPORT AbstractQoreClassUserDatagetManagedUserData () const
 retrieves the user-specific data pointer More...
 
template<typename T >
DLLLOCAL T * getManagedUserData () const
 retrieves the user-specific data pointer More...
 
DLLEXPORT const QoreMethodgetMemberGateMethod () const
 returns a const pointer to the QoreMethod object of the memberGate method, if any is set More...
 
DLLEXPORT const QoreMethodgetMemberNotificationMethod () const
 returns a const pointer to the QoreMethod object of the memberNotification method, if any is set More...
 
DLLEXPORT const QoreMethodgetMethodGate () const
 returns a const pointer to the QoreMethod object of the methodGate method, if any is set More...
 
DLLEXPORT QoreListNodegetMethodList () const
 returns a list strings of all non-static methods in the class, the caller owns the reference count returned More...
 
DLLEXPORT const char * getModuleName () const
 Returns the module name the class was loaded from or nullptr if it is a builtin class. More...
 
DLLEXPORT const char * getName () const
 returns the class name
 
DLLEXPORT const QoreNamespacegetNamespace () 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...
 
DLLEXPORT AbstractQoreNodegetNewObjectExpression (QoreListNode *args=nullptr) const
 Returns an expression that can be used to create a new object when executed. More...
 
DLLEXPORT const QoreTypeInfo * getOrNothingTypeInfo () const
 returns the "or nothing" type information structure for this class
 
DLLEXPORT const char * getPath () const
 Returns the root-justified namespace path of the class including the class name. More...
 
DLLEXPORT QoreProgramgetProgram () 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 QoreValue getReferencedKeyValue (const char *key) const
 Returns a referenced key value from the class's key-value store. More...
 
DLLEXPORT QoreValue getReferencedKeyValue (const std::string &key) const
 Returns a referenced key value from the class's key-value store. More...
 
DLLEXPORT bool getRelaxedAbstractMatch () const
 Returns the relaxed abstract matching flag. More...
 
DLLEXPORT q_serializer_t getSerializer () const
 returns the serializer method or nullptr if not present More...
 
DLLEXPORT QoreListNodegetStaticMethodList () const
 returns a list strings of all static methods in the class, the caller owns the reference count returned More...
 
DLLEXPORT const QoreMethodgetSystemConstructor () const
 returns a const pointer to the QoreMethod object of the constuctor method, if any is set More...
 
DLLEXPORT const QoreTypeInfo * getTypeInfo () const
 returns the type information structure for this class
 
DLLEXPORT const 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 hasParentClass () const
 returns true if the class has one or more parent classes
 
DLLEXPORT bool hasPublicMembersInHierarchy () const
 returns true if the class has any publicly-declared members
 
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 inHierarchyStrict (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; does not check injected compatibility. 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 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 QoreValue setKeyValue (const std::string &key, QoreValue val)
 Sets a key value in the class's key-value store unconditionally. More...
 
DLLEXPORT bool setKeyValueIfNotSet (const std::string &key, const char *str)
 Sets a key value in the class's key-value store only if no value exists for the given key. More...
 
DLLEXPORT QoreValue setKeyValueIfNotSet (const std::string &key, QoreValue val)
 Sets a key value in the class's key-value store only if no value exists for the given key. More...
 
DLLEXPORT void setLanguage (const char *lang)
 Sets the language for classes imported from another programming language. 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 setRelaxedAbstractMatch ()
 Sets relaxed abstract matching. 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.
 

Detailed Description

creates a builtin class

Constructor & Destructor Documentation

◆ QoreBuiltinClass()

DLLEXPORT QoreBuiltinClass::QoreBuiltinClass ( QoreProgram pgm,
const char *  name,
const char *  path,
int64  n_domain = QDOM_DEFAULT 
)

Creates the object and marks it as a builtin class.

Also marks the source program for the class, however the source program's reference count is not increased in this call, and in the destructor no dereference is made either

Since
Qore 1.0

The documentation for this class was generated from the following file: