32 #ifndef _QORE_QORECLASS_H 34 #define _QORE_QORECLASS_H 69 DLLEXPORT
extern QoreClass* QC_HTTPCLIENT;
70 DLLEXPORT
extern QoreClass* QC_SSLCERTIFICATE;
71 DLLEXPORT
extern QoreClass* QC_SSLPRIVATEKEY;
82 class AbstractQoreFunctionVariant;
83 class AbstractFunctionSignature;
86 class qore_method_private;
87 class MethodFunctionBase;
90 class MethodVariantBase;
97 class QoreExternalMethodFunction;
121 friend class StaticMethodCallNode;
123 friend class qore_class_private;
124 friend class qore_method_private;
129 class qore_method_private* priv;
141 DLLEXPORT
bool isUser()
const;
166 DLLEXPORT
const char*
getName()
const;
172 DLLEXPORT
const std::string&
getNameStr()
const;
187 DLLEXPORT
const QoreTypeInfo* getUniqueReturnTypeInfo()
const;
204 DLLEXPORT
const QoreExternalMethodFunction*
getFunction()
const;
206 DLLLOCAL
QoreMethod(
const QoreClass* p_class, MethodFunctionBase* n_func,
bool n_static =
false);
208 DLLLOCAL
bool inMethod(
const QoreObject*
self)
const;
210 DLLLOCAL
void assign_class(
const QoreClass* p_class);
237 friend class BCSMList;
238 friend class qore_object_private;
239 friend class qore_class_private;
241 friend class BCANode;
242 friend class qore_method_private;
245 friend class ConstructorMethodFunction;
267 DLLEXPORT
explicit QoreClass(
const char* n_name,
int n_domain);
277 DLLEXPORT
QoreClass(
const char* n_name,
int64 n_domain,
const QoreTypeInfo* n_typeInfo);
362 DLLEXPORT
void addAbstractMethod(
const char* n_name, ClassAccess access = Public,
int64 n_flags = QCF_NO_FLAGS,
const QoreTypeInfo* returnTypeInfo = 0,
unsigned num_params = 0, ...);
581 DLLEXPORT
bool hasCopy()
const;
602 DLLEXPORT
bool isFinal()
const;
663 DLLEXPORT
const char*
getName()
const;
784 DLLEXPORT
void addMember(
const char* mem, ClassAccess access,
const QoreTypeInfo* n_typeInfo,
QoreValue initial_value =
QoreValue());
809 template <
typename T>
828 DLLEXPORT
void addBuiltinConstant(
const char* name,
QoreValue value, ClassAccess access = Public,
const QoreTypeInfo* typeInfo =
nullptr);
836 DLLEXPORT
void addBuiltinStaticVar(
const char* name,
QoreValue value, ClassAccess access = Public,
const QoreTypeInfo* typeInfo =
nullptr);
918 DLLLOCAL
const QoreMethod* parseFindCommittedMethod(
const char* nme);
921 DLLLOCAL
int parseAddBaseClassArgumentList(BCAList* bcal);
923 DLLLOCAL
void setName(
const char* n);
927 DLLLOCAL BCSMList* getBCSMList()
const;
929 DLLLOCAL
bool has_delete_blocker()
const;
931 DLLLOCAL
bool parseHasPublicMembersInHierarchy()
const;
932 DLLLOCAL
bool runtimeHasPublicMembersInHierarchy()
const;
935 DLLLOCAL
bool hasParentClass()
const;
936 DLLLOCAL
bool hasPrivateCopyMethod()
const;
938 DLLLOCAL
bool parseHasPrivateCopyMethod()
const;
939 DLLLOCAL
const QoreMethod* parseGetConstructor()
const;
941 DLLLOCAL
bool parseHasMethodGate()
const;
943 DLLLOCAL
void parseSetEmptyPublicMemberDeclaration();
945 DLLLOCAL
void unsetPublicMemberFlag();
956 class qore_class_private* priv;
958 class qore_class_private_local* priv_local;
961 DLLLOCAL
QoreClass(qore_class_private* priv);
964 DLLLOCAL
void insertStaticMethod(
QoreMethod* o);
966 DLLLOCAL
const QoreMethod* parseResolveSelfMethodIntern(
const char* nme);
998 DLLEXPORT
bool next();
999 DLLEXPORT
const QoreMethod* getMethod()
const;
1010 DLLEXPORT
bool next();
1011 DLLEXPORT
const QoreMethod* getMethod()
const;
1065 DLLEXPORT
bool next();
1068 DLLEXPORT
bool valid()
const;
1074 DLLEXPORT ClassAccess
getAccess()
const;
1077 class qore_parent_class_iterator_private* priv;
1092 DLLEXPORT
bool next();
1095 DLLEXPORT
bool valid()
const;
1101 DLLEXPORT
const char*
getName()
const;
1104 class qore_class_member_iterator_private* priv;
1119 DLLEXPORT
bool next();
1122 DLLEXPORT
bool valid()
const;
1128 DLLEXPORT
const char*
getName()
const;
1131 class qore_class_static_member_iterator_private* priv;
1146 DLLEXPORT
bool next();
1149 DLLEXPORT
bool valid()
const;
1155 class qore_class_constant_iterator* priv;
1172 DLLEXPORT
bool next();
1175 DLLEXPORT
bool valid()
const;
1186 class qore_class_hierarchy_iterator* priv;
1203 DLLEXPORT
bool next();
1206 DLLEXPORT
bool valid()
const;
1217 class qore_class_destructor_hierarchy_iterator* priv;
1220 DLLEXPORT
const char* get_access_string(ClassAccess access);
1222 #endif // _QORE_QORECLASS_H DLLEXPORT const QoreExternalStaticMember * getMember() const
returns the member
DLLEXPORT bool isPrivate() const
returns true if all overloaded variants of a methods are private or class internal, false if at least one variant is public
DLLEXPORT void setUserData(const void *ptr)
sets a pointer to user-specific data in the class
DLLEXPORT QoreClassConstantIterator(const QoreClass *cls)
creates the iterator; call next() to start iterating
DLLEXPORT QoreClassHierarchyIterator(const QoreClass *cls)
creates the iterator; call next() to start iterating
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 ...
DLLEXPORT int runtimeCheckInstantiateClass(ExceptionSink *xsink) const
Throws a Qore-language exception if the class cannot be instantiated.
external wrapper base class for class normal members
Definition: QoreReflection.h:174
void(* q_external_constructor_t)(const QoreMethod &method, const void *ptr, QoreObject *self, const QoreListNode *args, q_rt_flags_t rtflags, ExceptionSink *xsink)
the type used for builtin QoreClass constructor method signatures
Definition: common.h:366
DLLEXPORT void setDestructor(q_destructor_t m)
sets the builtin destructor method for the class
DLLEXPORT void addBuiltinVirtualBaseClass(QoreClass *qc)
sets "virtual" base class for a class, meaning that the base class data is appropriate for use in the...
To be used to iterate through a class's normal (non-static) methods.
Definition: QoreClass.h:991
DLLEXPORT ~QoreClassStaticMemberIterator()
destroys the object
external wrapper class for constants
Definition: QoreReflection.h:200
DLLEXPORT bool isBuiltin() const
returns true if all variants of the method are builtin variants
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 exce...
DLLEXPORT const QoreNamespace * getNamespace() const
Returns the namespace that owns this class.
DLLEXPORT const QoreExternalNormalMember * getMember() const
returns the member
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 ...
DLLEXPORT bool isPrivateMember(const char *str) const
returns true if the member is private
void(* q_destructor_t)(QoreObject *self, AbstractPrivateData *private_data, ExceptionSink *xsink)
the type used for builtin QoreClass destructor signatures
Definition: common.h:386
DLLEXPORT ~QoreParentClassIterator()
destroys the object
DLLEXPORT void setCopy(q_copy_t m)
sets the builtin copy method for the class
DLLEXPORT bool isVirtual() const
returns true if the class has virtual inheritance, meaning that it is a builtin class without its own...
DLLEXPORT QoreParentClassIterator(const QoreClass *cls)
creates the iterator; call next() to start iterating
DLLEXPORT void setSerializer(q_serializer_t m)
sets the serializer method for builtin classes
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...
QoreValue(* q_external_static_method_t)(const QoreMethod &method, const void *ptr, const QoreListNode *args, q_rt_flags_t flags, ExceptionSink *xsink)
the type used for external static methods
Definition: common.h:346
DLLEXPORT void setDeleteBlocker(q_delete_blocker_t m)
sets the deleteBlocker method for the class
virtual void doDeref()=0
for non-reference counted classes, deletes the object immediately
DLLEXPORT bool isAbstract() const
returns true if the class has at least one unimplemented abstract method variant
void(* q_system_constructor_t)(QoreObject *self, int code, va_list args)
the type used for builtin QoreClass system constructor method signatures
Definition: common.h:378
DLLEXPORT const QoreMethod * findLocalMethod(const char *name) const
finds a normal (non-static) method in the class hierarchy
an abstract class for class-specific external user data
Definition: QoreClass.h:218
external wrapper base class for class static members
Definition: QoreReflection.h:153
external wrapper class for function and call variants
Definition: QoreReflection.h:38
iterates class constants
Definition: QoreClass.h:1137
DLLEXPORT bool valid() const
returns true if the iterator is pointing at a valid element
iterates the class hierarchy in the order of destructor execution
Definition: QoreClass.h:1194
allows for temporary storage of a QoreClass pointer
Definition: QoreClass.h:1017
DLLEXPORT const char * getName() const
returns the method's name
DLLEXPORT bool isPublicOrPrivateMember(const char *str, bool &priv) const
returns true if the member is private or public
contains constants, classes, and subnamespaces in QoreProgram objects
Definition: QoreNamespace.h:65
DLLEXPORT const QoreExternalStaticMember * findLocalStaticMember(const char *name) const
Finds the given local static member or returns nullptr.
virtual AbstractQoreClassUserData * copy() const =0
for reference-counted classes, returns the same object with the reference count incremented ...
DLLEXPORT int64 getDomain() const
returns the functional domain of the class
DLLLOCAL QoreClass * release()
releases the QoreClass*
Definition: QoreClass.h:1032
DLLEXPORT const QoreMethod * getDestructor() const
returns a const pointer to the QoreMethod object of the constructor method, if any is set ...
DLLEXPORT bool hasMethodGate() const
returns true if the class implements a "methodGate" method
QoreHashNode *(* q_serializer_t)(const QoreObject &self, const AbstractPrivateData &data, QoreSerializationContext &context, ExceptionSink *xsink)
the type used for builtin QoreClass serializer method signatures
Definition: common.h:434
DLLEXPORT QoreValue execManaged(QoreObject *self, const QoreListNode *args, ExceptionSink *xsink) const
evaluates the method and returns the value, does not reference the object for the call ...
DLLEXPORT const QoreMethod * findMethod(const char *nme) const
finds a normal (non-static) method in the class hierarchy
DLLEXPORT bool next()
returns advances to the next element (or to the first element if starting to iterate) and returns tru...
DLLEXPORT const QoreMethod * findStaticMethod(const char *nme) const
finds a static method in the class hierarchy
DLLEXPORT QoreObject * execConstructor(const QoreListNode *args, ExceptionSink *xsink) const
creates a new object and executes the constructor on it and returns the new object ...
DLLEXPORT const QoreTypeInfo * getOrNothingTypeInfo() const
returns the "or nothing" type information structure for this class
DLLEXPORT const char * getModuleName() const
Returns the module name the class was loaded from or nullptr if it is a builtin class.
DLLEXPORT int numStaticMethods() const
returns the number of static methods in this class (user and builtin)
DLLEXPORT void setManagedUserData(AbstractQoreClassUserData *cud)
sets a pointer to user-specific data in the class
DLLEXPORT bool isUser() const
returns true if all variants of the method are user variants
To be used to iterate through a class's static methods.
Definition: QoreClass.h:1003
Qore's string type supported by the QoreEncoding class.
Definition: QoreString.h:81
DLLEXPORT const QoreClass * getClass() const
returns a pointer to the parent class
DLLEXPORT int numUserMethods() const
returns the number of non-static user methods in this class
DLLEXPORT bool next()
returns advances to the next element (or to the first element if starting to iterate) and returns tru...
iterates the class hierarchy in the order of constructor execution
Definition: QoreClass.h:1163
DLLEXPORT q_serializer_t getSerializer() const
returns the serializer method or nullptr if not present
DLLEXPORT void addMember(const char *mem, ClassAccess access, const QoreTypeInfo *n_typeInfo, QoreValue initial_value=QoreValue())
adds a member
DLLEXPORT bool existsVariant(const type_vec_t ¶mTypeInfo) const
returns true if a variant with the given parameter signature already exists in the method ...
DLLEXPORT QoreListNode * getMethodList() const
returns a list strings of all non-static methods in the class, the caller owns the reference count re...
DLLEXPORT const QoreMethod * getMemberGateMethod() const
returns a const pointer to the QoreMethod object of the memberGate method, if any is set ...
DLLEXPORT const std::string & getNameStr() const
returns the method's name
This is the list container type in Qore, dynamically allocated only, reference counted.
Definition: QoreListNode.h:52
external wrapper base class for class members
Definition: QoreReflection.h:137
DLLEXPORT BinaryNode * getBinaryHash() const
returns a binary hash for the class's API
DLLEXPORT const QoreMethod * getConstructor() const
returns a const pointer to the QoreMethod object of the constuctor method, if any is set ...
DLLEXPORT const QoreMethod * getMemberNotificationMethod() const
returns a const pointer to the QoreMethod object of the memberNotification method, if any is set
DLLEXPORT bool valid() const
returns true if the iterator is pointing at a valid element
void(* q_external_copy_t)(const QoreClass &thisclass, const void *ptr, QoreObject *self, QoreObject *old, AbstractPrivateData *private_data, ExceptionSink *xsink)
the type used for builtin QoreClass copy signatures with the new generic calling convention ...
Definition: common.h:416
defines a Qore-language class
Definition: QoreClass.h:234
DLLEXPORT void addDefaultBuiltinBaseClass(QoreClass *qc)
make a builtin class a child of another builtin class and ensures that the given class's private data...
void(* q_external_destructor_t)(const QoreClass &thisclass, const void *ptr, QoreObject *self, AbstractPrivateData *private_data, ExceptionSink *xsink)
the type used for builtin QoreClass destructor signatures with the new generic calling convention and...
Definition: common.h:396
DLLEXPORT bool isStatic() const
returns true if the method is static
bool(* q_delete_blocker_t)(QoreObject *self, AbstractPrivateData *private_data)
the typed used for QoreClass deleteBlocker signatures
Definition: common.h:424
DLLEXPORT QoreClassDestructorHierarchyIterator(const QoreClass *cls)
creates the iterator; call next() to start iterating
DLLEXPORT void setDeserializer(q_deserializer_t m)
sets the deserializer method for builtin classes
DLLEXPORT const char * getName() const
returns the member's name
DLLEXPORT bool isFinal() const
returns true if the class is final
void(* q_deserializer_t)(QoreObject &self, const QoreHashNode *sdata, QoreDeserializationContext &context, ExceptionSink *xsink)
the type used for builtin QoreClass deserializer method signatures
Definition: common.h:446
DLLEXPORT bool next()
returns advances to the next element (or to the first element if starting to iterate) and returns tru...
DLLEXPORT const QoreMethod * getCopyMethod() const
returns a const pointer to the QoreMethod object of the destructor method, if any is set ...
DLLEXPORT const char * getClassName() const
returns the class name for the method
creates a builtin class
Definition: QoreClass.h:1044
DLLEXPORT QoreClassMemberIterator(const QoreClass *cls)
creates the iterator; call next() to start iterating
DLLEXPORT bool hasCopy() const
returns true if the class implements a copy method
void(* q_constructor_n_t)(QoreObject *self, const QoreListNode *args, q_rt_flags_t rtflags, ExceptionSink *xsink)
the type used for builtin QoreClass constructor method signatures
Definition: common.h:354
iterates static members of a class
Definition: QoreClass.h:1110
QoreValue(* q_method_n_t)(QoreObject *self, AbstractPrivateData *private_data, const QoreListNode *args, q_rt_flags_t flags, ExceptionSink *xsink)
the type used for builtin QoreClass method signatures
Definition: common.h:318
DLLEXPORT bool isEqual(const QoreClass &cls) const
returns true if the classes are equal
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
The main value class in Qore, designed to be passed by value.
Definition: QoreValue.h:262
DLLEXPORT bool isVirtual() const
returns true if the class has virtual inheritance, meaning that it is a builtin class without its own...
DLLEXPORT bool hasMemberGate() const
returns true if the class implements a "memberGate" method
DLLEXPORT const QoreMethod * getSystemConstructor() const
returns a const pointer to the QoreMethod object of the constuctor method, if any is set ...
the implementation of Qore's object data type, reference counted, dynamically-allocated only ...
Definition: QoreObject.h:61
unsigned qore_classid_t
used for the unique class ID for QoreClass objects
Definition: common.h:79
static unsigned num_params(const QoreListNode *n)
returns the number of arguments passed to the function
Definition: params.h:54
DLLEXPORT bool hasMemberNotification() const
returns true if the class implements a "memberNotification" method
external wrapper class for method variants
Definition: QoreReflection.h:90
container for holding Qore-language exception information and also for registering a "thread_exit" ca...
Definition: ExceptionSink.h:46
DLLEXPORT const QoreExternalConstant * findConstant(const char *name) const
Finds the given constant or returns nullptr if not found.
DLLEXPORT bool valid() const
returns true if the iterator is pointing at a valid element
DLLEXPORT bool valid() const
returns true if the iterator is pointing at a valid element
std::vector< std::string > name_vec_t
vector of parameter names for parameter lists
Definition: common.h:257
DLLEXPORT ClassAccess getAccess() const
returns the lowest access code of all variants in the method
DLLEXPORT std::string getNamespacePath(bool anchored=false) const
returns the full namespace path of the class
DLLEXPORT void recheckBuiltinMethodHierarchy()
rechecks for inherited methods in base classes when adding builtin classes
DLLLOCAL QoreClassHolder(QoreClass *c)
creates the object
Definition: QoreClass.h:1020
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...
DLLEXPORT const QoreExternalMethodFunction * getFunction() const
returns the function for the method
external wrapper class for source code location information
Definition: QoreReflection.h:187
DLLEXPORT bool isModulePublic() const
returns true if the class has its module public flag set
DLLEXPORT method_type_e getMethodType() const
returns the type of method
DLLEXPORT qore_classid_t getID() const
returns the class ID of this class
DLLEXPORT void setSystem()
marks the class as a builtin class
DLLEXPORT const QoreTypeInfo * getTypeInfo() const
returns the type information structure for this class
DLLEXPORT const QoreExternalNormalMember * findLocalMember(const char *name) const
Finds the given local member or returns nullptr.
DLLLOCAL QoreClass()
constructor not exported in library's API
long long int64
64bit integer type, cannot use int64_t here since it breaks the API on some 64-bit systems due to equ...
Definition: common.h:260
std::vector< QoreValue > arg_vec_t
vector of value information for default argument lists
Definition: common.h:254
DLLEXPORT QoreObject * execConstructorVariant(const QoreExternalMethodVariant *mv, const QoreListNode *arsg, ExceptionSink *xsink) const
creates a new object and executes the constructor on it and returns the new object ...
DLLEXPORT const void * getUserData() const
retrieves the user-specific data pointer
DLLEXPORT ~QoreClassMemberIterator()
destroys the object
DLLEXPORT void setGateAccessFlag()
sets the class's gate access flag so that memberGate() and methodGate() methods will be called with a...
DLLEXPORT const QoreMethod * getMethodGate() const
returns a const pointer to the QoreMethod object of the methodGate method, if any is set ...
DLLEXPORT const 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
DLLEXPORT void setSynchronousClass()
call this function if your builtin class requires *all* methods (except the constructor) to be run in...
DLLEXPORT bool valid() const
returns true if the iterator is pointing at a valid element
DLLEXPORT ~QoreClass()
deletes the object and frees all memory
DLLEXPORT const QoreClass * getParentClass() const
returns the parent class
DLLEXPORT QoreBuiltinClass(const char *name, int64 n_domain=QDOM_DEFAULT)
creates the object and marks it as a builtin class
DLLEXPORT int numStaticUserMethods() const
returns the number of static user methods in this class
DLLEXPORT ~QoreClassHolder()
deletes the QoreClass object if still managed
DLLEXPORT void addBuiltinStaticVar(const char *name, QoreValue value, ClassAccess access=Public, const QoreTypeInfo *typeInfo=nullptr)
adds a static variable to the class
DLLEXPORT bool isPseudoClass() const
returns true if the class is a pseudo class
DLLEXPORT bool isInjected() const
returns true if the class has been injected as a dependency injection
int16_t qore_type_t
used to identify unique Qore data and parse types (descendents of AbstractQoreNode) ...
Definition: common.h:70
DLLEXPORT AbstractQoreClassUserData * getManagedUserData() const
retrieves the user-specific data pointer
DLLEXPORT bool valid() const
returns true if the iterator is pointing at a valid element
DLLEXPORT QoreValue evalPseudoMethod(const QoreValue n, const char *nme, const QoreListNode *args, ExceptionSink *xsink) const
evaluates a pseudo-method on a pseudo-class
DLLEXPORT int numMethods() const
returns the number of non-static methods in this class (user and builtin)
iterates normal (non-static) members of a class
Definition: QoreClass.h:1083
DLLEXPORT bool next()
returns advances to the next element (or to the first element if starting to iterate) and returns tru...
DLLEXPORT void addBuiltinConstant(const char *name, QoreValue value, ClassAccess access=Public, const QoreTypeInfo *typeInfo=nullptr)
adds a class constant to the class
DLLEXPORT q_deserializer_t getDeserializer() const
returns the deserializer method or nullptr if not present
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...
DLLEXPORT void setPublicMemberFlag()
sets the class's public member flag so that undeclared member references will fail ...
DLLEXPORT void addBuiltinBaseClass(QoreClass *qc)
make a builtin class a child of another builtin class
DLLEXPORT const char * getName() const
returns the member's name
void(* q_copy_t)(QoreObject *self, QoreObject *old, AbstractPrivateData *private_data, ExceptionSink *xsink)
the type used for builtin QoreClass copy signatures
Definition: common.h:405
QoreValue(* q_external_method_t)(const QoreMethod &method, const void *ptr, QoreObject *self, AbstractPrivateData *private_data, const QoreListNode *args, q_rt_flags_t flags, ExceptionSink *xsink)
the type used for builtin QoreClass method signatures
Definition: common.h:333
std::vector< const QoreTypeInfo * > type_vec_t
vector of type information for parameter lists
Definition: common.h:251
a method in a QoreClass
Definition: QoreClass.h:120
DLLEXPORT bool next()
returns advances to the next element (or to the first element if starting to iterate) and returns tru...
DLLEXPORT const QoreMethod * findLocalStaticMethod(const char *name) const
finds a static method in the class hierarchy
DLLEXPORT QoreClassStaticMemberIterator(const QoreClass *cls)
creates the iterator; call next() to start iterating
DLLEXPORT void rescanParents()
rescan builtin parent classes in a class hierarchy; to be used with out-of-order class hierarchy cons...
DLLEXPORT void setFinal()
sets the final flag of the class
DLLEXPORT QoreListNode * getStaticMethodList() const
returns a list strings of all static methods in the class, the caller owns the reference count return...
DLLEXPORT qore_type_t getPseudoClassType() const
returns a pseudo-classes base type
DLLEXPORT ~QoreClassConstantIterator()
destroys the object
DLLEXPORT bool next()
returns advances to the next element (or to the first element if starting to iterate) and returns tru...
DLLEXPORT void setSystemConstructor(q_system_constructor_t m)
sets the builtin constructor for system objects (ex: used as constant values)
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...
DLLEXPORT bool isSystem() const
returns true if the class is a builtin class
DLLEXPORT const char * getName() const
returns the class name
iterates parent classes for a class with inheritance access information
Definition: QoreClass.h:1056
DLLEXPORT bool hasTransientMember() const
Returns true if the class has at least one locally-declared transient member.
QoreValue(* q_func_n_t)(const QoreListNode *args, q_rt_flags_t flags, ExceptionSink *xsink)
the type used for builtin function signatures
Definition: common.h:307
DLLEXPORT ~QoreClassHierarchyIterator()
destroys the object
holds arbitrary binary data
Definition: BinaryNode.h:41
DLLEXPORT ClassAccess getAccess() const
returns the access of the parent class
#define QDOM_DEFAULT
the default domain (no domain)
Definition: Restrictions.h:152
DLLEXPORT ~QoreClassDestructorHierarchyIterator()
destroys the object