QoreReflection.h File Reference
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

## Classes

class | QoreExternalConstant
| external wrapper class for constants More...
class | QoreExternalMemberBase
| external wrapper base class for class and hashdecl members More...
class | QoreExternalMemberVarBase
| external wrapper base class for class members More...
class | QoreExternalMethodVariant
| external wrapper class for method variants More...
class | QoreExternalNormalMember
| external wrapper base class for class normal members More...
class | QoreExternalProgramLocation
| external wrapper class for source code location information More...
class | QoreExternalStaticMember
| external wrapper base class for class static members More...
class | QoreExternalVariant
| external wrapper class for function and call variants More...

## Functions

DLLEXPORT QoreValue | qore_type_assign_value (const QoreTypeInfo *t, const QoreValue value, ExceptionSink *xsink)
| processes the given value by the given type and returns the result; a Qore-language exception is thrown if the value is not assignable to the type More...
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 type restrictions
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 QoreHashNode * | qore_type_get_accept_types (const QoreTypeInfo *t)
| returns a hash of base types accepted by the type More...
DLLEXPORT qore_type_t | qore_type_get_base_type (const QoreTypeInfo *t)
| returns the base type code for the type or NT_ALL for those that don't have types More...
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 may be nullptr meaning no type restrictions
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 const char * | qore_type_get_path (const QoreTypeInfo *ti)
| returns the full namespace path of the type; the argument may be nullptr meaning no type restrictions More...
DLLEXPORT QoreHashNode * | qore_type_get_return_types (const QoreTypeInfo *t)
| returns a hash of base types returned by the type More...
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 restrictions
DLLEXPORT bool | qore_type_is_assignable_from (const QoreTypeInfo *ti1, const QoreTypeInfo *ti2)
| returns true if ti2's return type is compatible with ti1 input (i.e. ti1 is assignable from ti2) More...
DLLEXPORT bool | qore_type_is_assignable_from (const QoreTypeInfo *ti1, const QoreTypeInfo *ti2, bool &may_not_match)
| returns true if ti2's return type is compatible with ti1 input (i.e. ti1 is assignable from ti2) More...
DLLEXPORT int | qore_type_is_assignable_from (const QoreTypeInfo *t, QoreValue value)
| returns true if the given type can be assigned from the given value More...
DLLEXPORT bool | qore_type_is_input_output_compatible (const QoreTypeInfo *ti1, const QoreTypeInfo *ti2)
| returns true if the types are compatible with inputs and outputs
DLLEXPORT bool | qore_type_is_output_compatible (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 type restrictions

## Detailed Description

external reflection API definitions

## Function Documentation

## qore_type_assign_value()

DLLEXPORT QoreValue qore_type_assign_value | ( | const QoreTypeInfo * | t,
|  | const QoreValue | value,
|  | ExceptionSink * | xsink
| ) |  |

processes the given value by the given type and returns the result; a Qore-language exception is thrown if the value is not assignable to the type

Since
  Qore 0.9.4

## qore_type_get_accept_types()

DLLEXPORT QoreHashNode* qore_type_get_accept_types | ( | const QoreTypeInfo * | t | ) |

returns a hash of base types accepted by the type

Since
  Qore 0.9.4

## qore_type_get_base_type()

DLLEXPORT qore_type_t qore_type_get_base_type | ( | const QoreTypeInfo * | t | ) |

returns the base type code for the type or NT_ALL for those that don't have types

Since
  Qore 0.9.4

## qore_type_get_path()

DLLEXPORT const char* qore_type_get_path | ( | const QoreTypeInfo * | ti | ) |

returns the full namespace path of the type; the argument may be nullptr meaning no type restrictions

Since
  Qore 1.0

## qore_type_get_return_types()

DLLEXPORT QoreHashNode* qore_type_get_return_types | ( | const QoreTypeInfo * | t | ) |

returns a hash of base types returned by the type

Since
  Qore 0.9.4

## qore_type_is_assignable_from() [1/3]

DLLEXPORT bool qore_type_is_assignable_from | ( | const QoreTypeInfo * | ti1,
|  | const QoreTypeInfo * | ti2
| ) |  |

returns true if ti2's return type is compatible with ti1 input (i.e. ti1 is assignable from ti2)

Parameters

  ti1 | the type to check assignability to
  ti2 | the type to see if it can be assigned to ti1

Returns
  true if ti2's return type is compatible with ti1 input (i.e. ti1 is assignable from ti2)

either argument may be nullptr meaning no type restrictions

Since
  Qore 0.9.4

## qore_type_is_assignable_from() [2/3]

DLLEXPORT bool qore_type_is_assignable_from | ( | const QoreTypeInfo * | ti1,
|  | const QoreTypeInfo * | ti2,
|  | bool & | may_not_match
| ) |  |

returns true if ti2's return type is compatible with ti1 input (i.e. ti1 is assignable from ti2)

Parameters

  ti1 | the type to check assignability to
  ti2 | the type to see if it can be assigned to ti1
  may_not_match | an output variable, if true then the assignment is not guaranteed to succeed and may fail at runtime

Returns
  true if ti2's return type is compatible with ti1 input (i.e. ti1 is assignable from ti2)

either argument may be nullptr meaning no type restrictions

Since
  Qore 0.9.4

## qore_type_is_assignable_from() [3/3]

DLLEXPORT int qore_type_is_assignable_from | ( | const QoreTypeInfo * | t,
|  | QoreValue | value
| ) |  |

returns true if the given type can be assigned from the given value

Parameters

  t | the type to check assignability to
  value | the value to check if it can be assigned to t

Returns
  a type match code for the assignability

The type argument t may be nullptr meaning no type restrictions

Since
  Qore 0.9.4