  | 
  
    Qore Programming Language
    0.9.16
    
   | 
 
 
 
 
   32 #ifndef _QORE_QORECLASS_H 
   34 #define _QORE_QORECLASS_H 
   72 DLLEXPORT 
extern QoreClass* QC_HTTPCLIENT;
 
   73 DLLEXPORT 
extern QoreClass* QC_SSLCERTIFICATE;
 
   74 DLLEXPORT 
extern QoreClass* QC_SSLPRIVATEKEY;
 
   76 DLLEXPORT 
extern QoreClass* QC_SERIALIZABLE;
 
   87 class AbstractQoreFunctionVariant;
 
   88 class AbstractFunctionSignature;
 
   91 class qore_method_private;
 
   92 class MethodFunctionBase;
 
   95 class MethodVariantBase;
 
  102 class QoreExternalMethodFunction;
 
  126     friend class StaticMethodCallNode;
 
  128     friend class qore_class_private;
 
  129     friend class qore_method_private;
 
  134     class qore_method_private* priv;
 
  146     DLLEXPORT 
bool isUser() 
const;
 
  171     DLLEXPORT 
const char* 
getName() 
const;
 
  177     DLLEXPORT 
const std::string& 
getNameStr() 
const;
 
  192     DLLEXPORT 
const QoreTypeInfo* getUniqueReturnTypeInfo() 
const;
 
  209     DLLEXPORT 
const QoreExternalMethodFunction* 
getFunction() 
const;
 
  211     DLLLOCAL 
QoreMethod(
const QoreClass* p_class, MethodFunctionBase* n_func, 
bool n_static = 
false);
 
  213     DLLLOCAL 
bool inMethod(
const QoreObject* 
self) 
const;
 
  215     DLLLOCAL 
void assign_class(
const QoreClass* p_class);
 
  242     friend class BCSMList;
 
  243     friend class qore_object_private;
 
  244     friend class qore_class_private;
 
  246     friend class BCANode;
 
  247     friend class qore_method_private;
 
  250     friend class ConstructorMethodFunction;
 
  283     DLLEXPORT 
explicit QoreClass(
const char* n_name, 
int n_domain);
 
  293     DLLEXPORT 
QoreClass(
const char* n_name, 
int64 n_domain, 
const QoreTypeInfo* n_typeInfo);
 
  393     DLLEXPORT 
void addAbstractMethod(
const char* n_name, ClassAccess access = Public, 
int64 n_flags = QCF_NO_FLAGS, 
const QoreTypeInfo* returnTypeInfo = 0, 
unsigned num_params = 0, ...);
 
  629     DLLEXPORT 
bool hasCopy() 
const;
 
  650     DLLEXPORT 
bool isFinal() 
const;
 
  711     DLLEXPORT 
const char* 
getName() 
const;
 
  840     DLLEXPORT 
void addMember(
const char* mem, ClassAccess access, 
const QoreTypeInfo* n_typeInfo, 
QoreValue initial_value = 
QoreValue());
 
  865     template <
typename T>
 
  884     DLLEXPORT 
void addBuiltinConstant(
const char* name, 
QoreValue value, ClassAccess access = Public, 
const QoreTypeInfo* typeInfo = 
nullptr);
 
  892     DLLEXPORT 
void addBuiltinStaticVar(
const char* name, 
QoreValue value, ClassAccess access = Public, 
const QoreTypeInfo* typeInfo = 
nullptr);
 
  971     DLLLOCAL 
const QoreMethod* parseFindCommittedMethod(
const char* nme);
 
  974     DLLLOCAL 
int parseAddBaseClassArgumentList(BCAList* bcal);
 
  976     DLLLOCAL 
void setName(
const char* n);
 
  980     DLLLOCAL BCSMList* getBCSMList() 
const;
 
  982     DLLLOCAL 
bool has_delete_blocker() 
const;
 
  984     DLLLOCAL 
bool parseHasPublicMembersInHierarchy() 
const;
 
  985     DLLLOCAL 
bool runtimeHasPublicMembersInHierarchy() 
const;
 
  988     DLLLOCAL 
bool hasParentClass() 
const;
 
  989     DLLLOCAL 
bool hasPrivateCopyMethod() 
const;
 
  991     DLLLOCAL 
bool parseHasPrivateCopyMethod() 
const;
 
  992     DLLLOCAL 
const QoreMethod* parseGetConstructor() 
const;
 
  994     DLLLOCAL 
bool parseHasMethodGate() 
const;
 
  996     DLLLOCAL 
void parseSetEmptyPublicMemberDeclaration();
 
  998     DLLLOCAL 
void unsetPublicMemberFlag();
 
 1012     class qore_class_private* priv;
 
 1015     DLLLOCAL 
void insertStaticMethod(
QoreMethod* o);
 
 1017     DLLLOCAL 
const QoreMethod* parseResolveSelfMethodIntern(
const char* nme);
 
 1049     DLLEXPORT 
bool next();
 
 1050     DLLEXPORT 
const QoreMethod* getMethod() 
const;
 
 1061     DLLEXPORT 
bool next();
 
 1062     DLLEXPORT 
const QoreMethod* getMethod() 
const;
 
 1120     DLLEXPORT 
bool next();
 
 1123     DLLEXPORT 
bool valid() 
const;
 
 1129     DLLEXPORT ClassAccess 
getAccess() 
const;
 
 1132     std::unique_ptr<class qore_parent_class_iterator_private> priv;
 
 1147     DLLEXPORT 
bool next();
 
 1150     DLLEXPORT 
bool valid() 
const;
 
 1156     DLLEXPORT 
const char* 
getName() 
const;
 
 1159     std::unique_ptr<class qore_class_member_iterator_private> priv;
 
 1174     DLLEXPORT 
bool next();
 
 1177     DLLEXPORT 
bool valid() 
const;
 
 1183     DLLEXPORT 
const char* 
getName() 
const;
 
 1186     std::unique_ptr<class qore_class_static_member_iterator_private> priv;
 
 1201     DLLEXPORT 
bool next();
 
 1204     DLLEXPORT 
bool valid() 
const;
 
 1210     std::unique_ptr<class qore_class_constant_iterator> priv;
 
 1227     DLLEXPORT 
bool next();
 
 1230     DLLEXPORT 
bool valid() 
const;
 
 1241     std::unique_ptr<class qore_class_hierarchy_iterator> priv;
 
 1258     DLLEXPORT 
bool next();
 
 1261     DLLEXPORT 
bool valid() 
const;
 
 1272     class qore_class_destructor_hierarchy_iterator* priv;
 
 1275 DLLEXPORT 
const char* get_access_string(ClassAccess access);
 
 1277 #endif // _QORE_QORECLASS_H 
  
 
DLLEXPORT void setSerializer(q_serializer_t m)
sets the serializer method for builtin classes
 
virtual void doDeref()=0
for non-reference counted classes, deletes the object immediately
 
DLLEXPORT void addBuiltinVirtualBaseClass(QoreClass *qc)
sets "virtual" base class for a class, meaning that the base class data is appropriate for use in the...
 
DLLEXPORT void addBuiltinBaseClass(QoreClass *qc)
make a builtin class a child of another builtin class
 
const DLLEXPORT void * getUserData() const
retrieves the user-specific data pointer
 
DLLEXPORT bool next()
returns advances to the next element (or to the first element if starting to iterate) and returns tru...
 
DLLEXPORT ~QoreClassDestructorHierarchyIterator()
destroys the object
 
const DLLEXPORT QoreNamespace * getNamespace() const
Returns the namespace that owns this class.
 
DLLEXPORT void setFinal()
sets the final flag of the class
 
const DLLEXPORT QoreTypeInfo * getOrNothingTypeInfo() const
returns the "or nothing" type information structure for this class
 
const DLLEXPORT QoreMethod * findStaticMethod(const char *nme) const
finds a static method in the class hierarchy
 
virtual AbstractQoreClassUserData * copy() const =0
for reference-counted classes, returns the same object with the reference count incremented
 
DLLEXPORT bool valid() const
returns true if the iterator is pointing at a valid element
 
const DLLEXPORT QoreClass * get() const
returns the parent class
 
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 ~QoreClassConstantIterator()
destroys the object
 
const DLLEXPORT QoreClass & getParentClass() const
returns the parent class
 
DLLEXPORT bool next()
returns advances to the next element (or to the first element if starting to iterate) and returns tru...
 
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:378
 
iterates static members of a class
Definition: QoreClass.h:1165
 
external wrapper base class for class normal members
Definition: QoreReflection.h:174
 
supports parsing and executing Qore-language code, reference counted, dynamically-allocated only
Definition: QoreProgram.h:126
 
external wrapper class for method variants
Definition: QoreReflection.h:90
 
const DLLEXPORT QoreMethod * getMemberNotificationMethod() const
returns a const pointer to the QoreMethod object of the memberNotification method,...
 
const DLLEXPORT QoreExternalStaticMember & getMember() const
returns the member
 
DLLLOCAL QoreClass * release()
releases the QoreClass*
Definition: QoreClass.h:1083
 
The main value class in Qore, designed to be passed by value.
Definition: QoreValue.h:262
 
DLLEXPORT int64 getDomain() const
returns the functional domain of the class
 
DLLEXPORT ClassAccess getAccess() const
returns the lowest access code of all variants in the method
 
#define QDOM_DEFAULT
the default domain (no domain)
Definition: Restrictions.h:156
 
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:390
 
const DLLEXPORT char * getName() const
returns the method's name
 
const DLLEXPORT QoreClass & get() const
returns the parent class
 
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 ...
 
const DLLEXPORT QoreMethod * findLocalStaticMethod(const char *name) 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
 
const DLLEXPORT QoreTypeInfo * getTypeInfo() const
returns the type information structure for this class
 
DLLEXPORT void setCopy(q_copy_t m)
sets the builtin copy method for the class
 
DLLEXPORT bool next()
returns advances to the next element (or to the first element if starting to iterate) and returns tru...
 
external wrapper base class for class static members
Definition: QoreReflection.h:153
 
DLLEXPORT int runtimeCheckInstantiateClass(ExceptionSink *xsink) const
Throws a Qore-language exception if the class cannot be instantiated.
 
DLLEXPORT ~QoreParentClassIterator()
destroys the object
 
DLLEXPORT void setDeleteBlocker(q_delete_blocker_t m)
sets the deleteBlocker method for the class
 
defines a Qore-language class
Definition: QoreClass.h:239
 
DLLEXPORT void setDestructor(q_destructor_t m)
sets the builtin destructor method for the class
 
DLLEXPORT bool valid() const
returns true if the iterator is pointing at a valid element
 
creates a builtin class
Definition: QoreClass.h:1095
 
const DLLEXPORT QoreExternalNormalMember & getMember() const
returns the member
 
const DLLEXPORT char * getName() const
returns the class name
 
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 bool isPrivateMember(const char *str) const
returns true if the member is private
 
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:458
 
DLLEXPORT bool next()
returns advances to the next element (or to the first element if starting to iterate) and returns tru...
 
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 isVirtual() const
returns true if the class has virtual inheritance, meaning that it is a builtin class without its own...
 
const DLLEXPORT QoreMethod * findMethod(const char *nme) const
finds a normal (non-static) method in the class hierarchy
 
DLLEXPORT QoreClassStaticMemberIterator(const QoreClass &cls)
creates the iterator; call next() to start iterating
 
const DLLEXPORT QoreMethod * getMethodGate() const
returns a const pointer to the QoreMethod object of the methodGate method, if any is set
 
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,...
 
This is the list container type in Qore, dynamically allocated only, reference counted.
Definition: QoreListNode.h:52
 
DLLEXPORT int numStaticMethods() const
returns the number of static methods in this class (user and builtin)
 
DLLEXPORT BinaryNode * getBinaryHash() const
returns a binary hash for the class's API
 
DLLEXPORT bool isAbstract() const
returns true if the class has at least one unimplemented abstract method variant
 
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
 
DLLEXPORT ~QoreClassMemberIterator()
destroys the object
 
std::vector< QoreValue > arg_vec_t
vector of value information for default argument lists
Definition: common.h:254
 
DLLEXPORT int numUserMethods() const
returns the number of non-static user methods in this class
 
DLLEXPORT bool hasMethodGate() const
returns true if the class implements a "methodGate" method
 
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_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:428
 
DLLEXPORT void setDeserializer(q_deserializer_t m)
sets the deserializer method for builtin classes
 
iterates normal (non-static) members of a class
Definition: QoreClass.h:1138
 
virtual DLLEXPORT ~QoreClass()
Deletes the object and frees all memory.
 
DLLEXPORT bool isPublicOrPrivateMember(const char *str, bool &priv) const
returns true if the member is private or public
 
const DLLEXPORT char * getModuleName() const
Returns the module name the class was loaded from or nullptr if it is a builtin class.
 
contains constants, classes, and subnamespaces in QoreProgram objects
Definition: QoreNamespace.h:65
 
external wrapper class for constants
Definition: QoreReflection.h:200
 
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:330
 
DLLEXPORT bool valid() const
returns true if the iterator is pointing at a valid element
 
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
 
const DLLEXPORT QoreExternalMethodFunction * getFunction() const
returns the function for the method
 
DLLEXPORT QoreClassDestructorHierarchyIterator(const QoreClass *cls)
creates the iterator; call next() to start iterating
 
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 bool isFinal() const
returns true if the class is final
 
iterates parent classes for a class with inheritance access information
Definition: QoreClass.h:1111
 
DLLEXPORT QoreBuiltinClass()
for use with QoreClass::copyImport()
 
DLLEXPORT bool isModulePublic() const
returns true if the class has its module public flag set
 
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:358
 
DLLEXPORT QoreListNode * getMethodList() const
returns a list strings of all non-static methods in the class, the caller owns the reference count re...
 
DLLEXPORT bool hasCopy() const
returns true if the class implements a copy method
 
DLLEXPORT qore_classid_t getID() const
returns the class ID of this class
 
iterates the class hierarchy in the order of constructor execution
Definition: QoreClass.h:1218
 
DLLEXPORT QoreClassHierarchyIterator(const QoreClass &cls)
creates the iterator; call next() to start iterating
 
DLLEXPORT bool isPrivate() const
returns true if all overloaded variants of a methods are private or class internal,...
 
iterates the class hierarchy in the order of destructor execution
Definition: QoreClass.h:1249
 
DLLEXPORT bool valid() const
returns true if the iterator is pointing at a valid element
 
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
 
const DLLEXPORT QoreExternalConstant * findConstant(const char *name) const
Finds the given constant or returns nullptr if not found.
 
DLLEXPORT void setManagedUserData(AbstractQoreClassUserData *cud)
sets a pointer to user-specific data in the class
 
const DLLEXPORT QoreMethod * getSystemConstructor() const
returns a const pointer to the QoreMethod object of the constuctor method, if any is set
 
virtual DLLEXPORT QoreClass * copyImport()
Called when a class is copied for import.
 
const DLLEXPORT char * getName() const
returns the member's name
 
external wrapper class for source code location information
Definition: QoreReflection.h:187
 
DLLEXPORT bool next()
returns advances to the next element (or to the first element if starting to iterate) and returns tru...
 
the implementation of Qore's object data type, reference counted, dynamically-allocated only
Definition: QoreObject.h:61
 
DLLEXPORT void addMember(const char *mem, ClassAccess access, const QoreTypeInfo *n_typeInfo, QoreValue initial_value=QoreValue())
adds a member
 
DLLEXPORT q_serializer_t getSerializer() const
returns the serializer method or nullptr if not present
 
container for holding Qore-language exception information and also for registering a "thread_exit" ca...
Definition: ExceptionSink.h:48
 
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:345
 
virtual DLLEXPORT QoreClass * copy()
Called when a class is copied.
 
DLLEXPORT QoreClassMemberIterator(const QoreClass &cls)
creates the iterator; call next() to start iterating
 
DLLEXPORT void setSystem()
marks the class as a builtin class
 
DLLEXPORT void addBuiltinStaticVar(const char *name, QoreValue value, ClassAccess access=Public, const QoreTypeInfo *typeInfo=nullptr)
adds a static variable to the class
 
external wrapper base class for class members
Definition: QoreReflection.h:137
 
bool(* q_delete_blocker_t)(QoreObject *self, AbstractPrivateData *private_data)
the typed used for QoreClass deleteBlocker signatures
Definition: common.h:436
 
DLLEXPORT AbstractQoreClassUserData * getManagedUserData() const
retrieves the user-specific data pointer
 
DLLEXPORT bool isEqual(const QoreClass &cls) const
returns true if the classes are equal
 
unsigned qore_classid_t
used for the unique class ID for QoreClass objects
Definition: common.h:79
 
allows for temporary storage of a QoreClass pointer
Definition: QoreClass.h:1068
 
const DLLEXPORT char * getClassName() const
returns the class name for the method
 
DLLEXPORT bool hasMemberGate() const
returns true if the class implements a "memberGate" method
 
DLLEXPORT bool isBuiltin() const
returns true if all variants of the method are builtin variants
 
DLLEXPORT int numMethods() const
returns the number of non-static methods in this class (user and builtin)
 
const DLLEXPORT char * getName() const
returns the member's name
 
DLLEXPORT void setGateAccessFlag()
sets the class's gate access flag so that memberGate() and methodGate() methods will be called with a...
 
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:446
 
iterates class constants
Definition: QoreClass.h:1192
 
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:366
 
const DLLEXPORT std::string & getNameStr() const
returns the method's name
 
const DLLEXPORT QoreExternalStaticMember * findLocalStaticMember(const char *name) const
Finds the given local static member or returns nullptr.
 
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 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,...
 
const DLLEXPORT QoreMethod * getConstructor() const
returns a const pointer to the QoreMethod object of the constuctor method, if any is set
 
DLLEXPORT bool next()
returns advances to the next element (or to the first element if starting to iterate) and returns tru...
 
const DLLEXPORT QoreClass * getClass() const
returns a pointer to the parent class
 
DLLEXPORT ~QoreClassHierarchyIterator()
destroys the object
 
DLLEXPORT bool isInjected() const
returns true if the class has been injected as a dependency injection
 
DLLEXPORT QoreListNode * getStaticMethodList() const
returns a list strings of all static methods in the class, the caller owns the reference count return...
 
DLLEXPORT bool valid() const
returns true if the iterator is pointing at a valid element
 
DLLEXPORT qore_type_t getPseudoClassType() const
returns a pseudo-classes base type
 
const DLLEXPORT QoreMethod * findLocalMethod(const char *name) const
finds a normal (non-static) method in the class hierarchy
 
DLLEXPORT void setSystemConstructor(q_system_constructor_t m)
sets the builtin constructor for system objects (ex: used as constant values)
 
DLLEXPORT void addBuiltinConstant(const char *name, QoreValue value, ClassAccess access=Public, const QoreTypeInfo *typeInfo=nullptr)
adds a class constant to the class
 
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:408
 
DLLEXPORT bool hasTransientMember() const
Returns true if the class has at least one locally-declared transient member.
 
DLLEXPORT bool hasMemberNotification() const
returns true if the class implements a "memberNotification" method
 
DLLEXPORT void setSynchronousClass()
call this function if your builtin class requires *all* methods (except the constructor) to be run in...
 
static unsigned num_params(const QoreListNode *n)
returns the number of arguments passed to the function
Definition: params.h:54
 
DLLEXPORT void recheckBuiltinMethodHierarchy()
rechecks for inherited methods in base classes when adding builtin classes
 
DLLEXPORT std::string getNamespacePath(bool anchored=false) const
returns the full namespace path of the class
 
DLLEXPORT ~QoreClassStaticMemberIterator()
destroys the object
 
DLLEXPORT int numStaticUserMethods() const
returns the number of static user methods in this class
 
const DLLEXPORT QoreMethod * getCopyMethod() const
returns a const pointer to the QoreMethod object of the destructor method, if any is set
 
DLLEXPORT method_type_e getMethodType() const
returns the type of method
 
To be used to iterate through a class's static methods.
Definition: QoreClass.h:1054
 
DLLEXPORT QoreClass()
For use with QoreClass::copyImport()
 
DLLEXPORT void rescanParents()
rescan builtin parent classes in a class hierarchy; to be used with out-of-order class hierarchy cons...
 
DLLEXPORT bool isPseudoClass() const
returns true if the class is a pseudo class
 
DLLEXPORT void addBaseClass(QoreClass *qc, bool virt=false)
Adds a base class to the current class.
 
DLLEXPORT QoreProgram * getProgram() const
Returns the owning QoreProgram object (if not the static system namespace)
 
DLLEXPORT void setUserData(const void *ptr)
sets a pointer to user-specific data in the class
 
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:125
 
DLLEXPORT ClassAccess getAccess() const
returns the access of the parent class
 
DLLEXPORT QoreValue evalPseudoMethod(const QoreValue n, const char *nme, const QoreListNode *args, ExceptionSink *xsink) const
evaluates a pseudo-method on a pseudo-class
 
void(* q_destructor_t)(QoreObject *self, AbstractPrivateData *private_data, ExceptionSink *xsink)
the type used for builtin QoreClass destructor signatures
Definition: common.h:398
 
DLLEXPORT bool isSystem() const
returns true if the class is a builtin class
 
external wrapper class for function and call variants
Definition: QoreReflection.h:38
 
To be used to iterate through a class's normal (non-static) methods.
Definition: QoreClass.h:1042
 
DLLEXPORT ~QoreClassHolder()
deletes the QoreClass object if still managed
 
holds arbitrary binary data
Definition: BinaryNode.h:41
 
DLLEXPORT bool valid() const
returns true if the iterator is pointing at a valid element
 
DLLEXPORT bool isUser() const
returns true if all variants of the method are user variants
 
DLLEXPORT void setPublicMemberFlag()
sets the class's public member flag so that undeclared member references will fail
 
std::vector< std::string > name_vec_t
vector of parameter names for parameter lists
Definition: common.h:257
 
int16_t qore_type_t
used to identify unique Qore data and parse types (descendents of AbstractQoreNode)
Definition: common.h:70
 
DLLEXPORT QoreParentClassIterator(const QoreClass &cls)
creates the iterator; call next() to start iterating
 
const DLLEXPORT QoreExternalConstant & get() const
returns the
 
const DLLEXPORT QoreMethod * getDestructor() const
returns a const pointer to the QoreMethod object of the constructor method, if any is set
 
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
 
DLLEXPORT QoreClassConstantIterator(const QoreClass &cls)
creates the iterator; call next() to start iterating
 
const DLLEXPORT QoreMethod * getMemberGateMethod() const
returns a const pointer to the QoreMethod object of the memberGate method, if any is set
 
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 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...
 
an abstract class for class-specific external user data
Definition: QoreClass.h:223
 
void(* q_copy_t)(QoreObject *self, QoreObject *old, AbstractPrivateData *private_data, ExceptionSink *xsink)
the type used for builtin QoreClass copy signatures
Definition: common.h:417
 
DLLLOCAL QoreClassHolder(QoreClass *c)
creates the object
Definition: QoreClass.h:1071
 
DLLEXPORT bool isVirtual() const
returns true if the class has virtual inheritance, meaning that it is a builtin class without its own...
 
const DLLEXPORT QoreExternalNormalMember * findLocalMember(const char *name) const
Finds the given local member or returns nullptr.
 
DLLEXPORT q_deserializer_t getDeserializer() const
returns the deserializer method or nullptr if not present
 
DLLEXPORT bool isStatic() const
returns true if the method is static