31 #ifndef _QORE_QOREREFLECTION_H 33 #define _QORE_QOREREFLECTION_H 203 DLLEXPORT
const char*
getName()
const;
228 class QoreExternalFunction {
231 DLLEXPORT
const char* getName()
const;
234 DLLEXPORT
const QoreClass* getClass()
const;
240 DLLEXPORT
bool isBuiltin()
const;
243 DLLEXPORT
bool isInjected()
const;
246 DLLEXPORT
unsigned numVariants()
const;
256 DLLLOCAL QoreExternalFunction();
259 class QoreExternalFunctionIterator {
261 DLLEXPORT QoreExternalFunctionIterator(
const QoreExternalFunction& f);
263 DLLEXPORT ~QoreExternalFunctionIterator();
265 DLLEXPORT
bool next();
270 class qore_external_function_iterator_private* priv;
273 class QoreExternalMethodFunction :
public QoreExternalFunction {
276 DLLEXPORT
const QoreMethod* getMethod()
const;
279 DLLEXPORT
bool isStatic()
const;
283 DLLLOCAL QoreExternalMethodFunction();
286 class QoreExternalGlobalVar {
289 DLLEXPORT
const char* getName()
const;
292 DLLEXPORT
bool isModulePublic()
const;
295 DLLEXPORT
bool isBuiltin()
const;
298 DLLEXPORT
const QoreTypeInfo* getTypeInfo()
const;
301 DLLEXPORT
QoreValue getReferencedValue()
const;
316 DLLLOCAL QoreExternalGlobalVar();
323 DLLEXPORT
bool qore_type_equal(
const QoreTypeInfo* ti1,
const QoreTypeInfo* ti2);
DLLEXPORT const char * qore_type_get_name(const QoreTypeInfo *ti)
returns the name of the type; the argument may be nullptr meaning no type restrictions ...
DLLEXPORT bool qore_type_has_default_value(const QoreTypeInfo *ti)
returns true if the type has a default value; the argument may be nullptr meaning no type restriction...
external wrapper base class for class normal members
Definition: QoreReflection.h:174
DLLEXPORT const char * getName() const
returns the constant name
DLLEXPORT QoreHashNode * getHash() const
returns a hash of the given source location
DLLEXPORT const type_vec_t & getParamTypeList() const
returns the parameter types for the variant
external wrapper class for constants
Definition: QoreReflection.h:200
This is the hash or associative list container type in Qore, dynamically allocated only...
Definition: QoreHashNode.h:50
DLLEXPORT QoreValue getDefaultValue(ExceptionSink *xsink) const
evaluates the initialization expression for the member and returns the referenced value ...
DLLEXPORT const QoreMethod * getMethod() const
returns the method for a method variant
DLLEXPORT bool isBuiltin() const
returns true if the constant is builtin
DLLEXPORT bool isBuiltin() const
returns true if the variant is builtin
DLLEXPORT const char * getAccessString() const
returns a string for the access info for the member
external wrapper base class for class static members
Definition: QoreReflection.h:153
external wrapper class for function and call variants
Definition: QoreReflection.h:38
DLLEXPORT bool isFinal() const
returns true if the method variant is final
DLLEXPORT bool isSynchronized() const
returns true if the variant has the synchronized flag set
DLLEXPORT QoreValue getValue() const
returns the current value of the member; caller owns an reference returned
DLLEXPORT const QoreTypeInfo * getTypeInfo() const
returns the type info for the constant
DLLEXPORT unsigned numParams() const
returns the number of parameters
DLLEXPORT const QoreTypeInfo * getTypeInfo() const
returns the type info for the member
DLLEXPORT ClassAccess getAccess() const
returns the access info for the member
DLLEXPORT bool isTransient() const
returns true if the member is transient (i.e. will not be serialized)
DLLEXPORT QoreValue getReferencedValue() const
returns the value of the constant; caller owns any reference returned
DLLEXPORT const name_vec_t & getParamNames() const
returns a list of parameter names for the variant
DLLEXPORT bool hasBody() const
returns true if the variant has a function body
external wrapper base class for class and hashdecl members
Definition: QoreReflection.h:118
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 const QoreExternalProgramLocation * getSourceLocation() const
returns the source location of the variant
defines a Qore-language class
Definition: QoreClass.h:234
DLLEXPORT int64 getCodeFlags() const
returns binary-or-combined code flags
The main value class in Qore, designed to be passed by value.
Definition: QoreValue.h:262
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
container for holding Qore-language exception information and also for registering a "thread_exit" ca...
Definition: ExceptionSink.h:46
DLLEXPORT bool isModulePublic() const
returns true if the variant has the module public flag set
std::vector< std::string > name_vec_t
vector of parameter names for parameter lists
Definition: common.h:257
external wrapper class for source code location information
Definition: QoreReflection.h:187
DLLEXPORT int setValue(const QoreValue val, ExceptionSink *xsink) const
sets the value of the member
DLLEXPORT const arg_vec_t & getDefaultArgList() const
returns a list of default arguments for the variant
DLLEXPORT const QoreExternalProgramLocation * getSourceLocation() const
returns the source location of the member's declaration
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 bool isAbstract() const
returns true if the method variant is abstract
DLLEXPORT const QoreExternalProgramLocation * getSourceLocation() const
returns the source code location of the constant's definition
DLLEXPORT ClassAccess getAccess() const
returns the access info for the member
DLLEXPORT const QoreClass * getClass() const
returns the class for a method variant or nullptr for a normal variant
DLLEXPORT bool qore_type_equal(const QoreTypeInfo *ti1, const QoreTypeInfo *ti2)
returns true if the types are equal; either argument may be nullptr meaning no type restrictions ...
DLLEXPORT const char * getAccessString() const
returns a string for the access info for the member
DLLEXPORT const QoreTypeInfo * getReturnTypeInfo() const
returns the return type
DLLEXPORT bool qore_type_is_output_compatiblee(const QoreTypeInfo *ti1, const QoreTypeInfo *ti2)
returns true if ti2's return type is compatible with ti1's; either argument may be nullptr meaning no...
DLLEXPORT bool qore_type_can_convert_to_scalar(const QoreTypeInfo *ti)
returns true if the type's value can be converted to a scalar; the argument may be nullptr meaning no...
DLLEXPORT bool isModulePublic() const
returns true if the constant has the module public flag set
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 QoreValue qore_type_get_default_value(const QoreTypeInfo *ti)
returns the default value of the type (if any); the caller owns any reference returned; the argument ...
DLLEXPORT const char * getSignatureText() const
returns the signature for the variant
DLLEXPORT bool isStatic() const
returns true if the method variant is static
DLLEXPORT int64 getDomain() const
returns the functional domain of the variant
DLLEXPORT ClassAccess getAccess() const
returns the access info for the constant