Loading...
Searching...
No Matches
Qore::Reflection::Function Class Reference

A class representing a Qore function. More...

`#include <QC_Function.dox.h>`

Inheritance diagram for Qore::Reflection::Function:

## Public Member Functions

auto | call (...)
| calls the function with the given arguments
auto | callArgs (*softlist< auto > argv)
| calls the given function with the given arguments as a list
| constructor (string path)
| Creates the function from the name or namespace-justified path supplied as an argument.
FunctionVariant | getVariant (...)
| Returns the given direct child function variant declared in this function or throws an exception if the function variant is not defined.
FunctionVariant | getVariantArgs (softlist< Type > argv)
| Returns the given direct child function variant declared in this function or throws an exception if the function variant is not defined.
list< FunctionVariant > | getVariants ()
| returns the variants implemented by the function
Public Member Functions inherited from Qore::Reflection::AbstractReflectionFunction
| constructor ()
| Throws an exception if called directly; this class can only be instantiated by builtin subclasses.
list< string > | getCodeFlagList ()
| returns a list of strings of code flags common to all variants for this function
int | getCodeFlags ()
| returns a bitfield of code flags common to all variants for this function
int | getDomain ()
| returns the functional domain common to all variants for this function (for builtin functions only) as a bitfield of Functional Domain Constants
list< string > | getDomainStringList ()
| returns a list of functional domain strings common to all variants for this function (for builtin functions only); an empty list is returned for user functions
*string | getModuleName ()
| Returns the module name providing the function or method or NOTHING if the function or method was not provided by a module.
string | getName ()
| returns the function or method name
bool | isBuiltin ()
| returns True if the function or method is a builtin function or method
bool | isEqual (AbstractReflectionFunction func)
| Returns True if the function or method object passed as an argument is equal to the current object; False if not.
bool | isInjected ()
| returns True if the function or method has been injected as a dependency injection
bool | isMethod ()
| returns True if the object is a method but not a pseudo-method
bool | isPseudoMethod ()
| returns True if the object is a pseudo-method
bool | isUser ()
| returns True if the function or method is a user function or method
int | numVariants ()
| returns the number of variants implemented by the function or method

## Static Public Member Functions

static list< Function > | findAllRegex (string pattern, *int re_opts)
| Returns a list of functions matching the regular expression pattern argument or an empty list if no functions match.
static list< Function > | findAllRegex (Program pgm, string pattern, *int re_opts)
| Returns a list of functions matching the regular expression pattern argument or an empty list if no functions match.
static Function | forName (string path)
| Returns a Function object from the function name or namespace-justified path as a string.
static Function | forName (Program pgm, string path)
| Returns a Function object from the function name or namespace-justified path as a string.

## Detailed Description

A class representing a Qore function.

Restrictions:
  Qore::PO_NO_REFLECTION

Since
  Qore 0.9.0

## Member Function Documentation

## call()

auto Qore::Reflection::Function::call | ( |  | ... | ) |

calls the function with the given arguments

Example:
  auto v = f.call(arg1, arg2);

Parameters

  ... | optional arguments to the function

Returns
  the return value of the function call

Exceptions

  PROGRAM-ERROR | thrown if the Program object holding the function has been destroyed

See also
  callArgs()

## callArgs()

auto Qore::Reflection::Function::callArgs | ( | *softlist< auto > | argv | ) |

calls the given function with the given arguments as a list

Example:
  auto v = f.callArgs(argv);

Parameters

  argv | optional arguments to the function

Returns
  the return value of the function call

Exceptions

  PROGRAM-ERROR | thrown if the Program object holding the function has been destroyed

See also
  call()

## constructor()

Qore::Reflection::Function::constructor | ( | string | path | ) |

Creates the function from the name or namespace-justified path supplied as an argument.

Example:
  Function f("Qore::printf");

Parameters

  path | the function name or namespace-justified path as a string

Exceptions

  UNKNOWN-FUNCTION | cannot find a function with the given name or path
  ENCODING-CONVERSION-ERROR | this exception could be thrown if the string argument is not in the default character encoding and an error occurs during encoding conversion

See also
  forName()

## findAllRegex() [1/2]

static list< Function > Qore::Reflection::Function::findAllRegex | ( | Program | pgm,
|  | string | pattern,
|  | *int | re_opts )

static

Returns a list of functions matching the regular expression pattern argument or an empty list if no functions match.

Code Flags:
  RET_VALUE_ONLY

Example:
  # return all accessible functions that start with the letter "g"
  list<Function> l = Function::findAllRegex(pgm, "^gg");

Parameters

  pgm | the Program object to search
  pattern | the regular expression pattern to match
  re_opts | see Regular Expression Constants for possible values

Returns
  a list of functions matching the regular expression pattern argument or an empty list if no functions match

## findAllRegex() [2/2]

static list< Function > Qore::Reflection::Function::findAllRegex | ( | string | pattern,
|  | *int | re_opts )

static

Returns a list of functions matching the regular expression pattern argument or an empty list if no functions match.

Code Flags:
  RET_VALUE_ONLY

Example:
  # return all accessible functions that start with the letter "g"
  list<Function> l = Function::findAllRegex("^gg");

Parameters

  pattern | the regular expression pattern to match
  re_opts | see Regular Expression Constants for possible values

Returns
  a list of functions matching the regular expression pattern argument or an empty list if no functions match

## forName() [1/2]

static Function Qore::Reflection::Function::forName | ( | Program | pgm,
|  | string | path )

static

Returns a Function object from the function name or namespace-justified path as a string.

Code Flags:
  RET_VALUE_ONLY

Example:
  Function f = Function::forName(pgm, "Qore::printf");

Parameters

  pgm | the Program object to search
  path | the function name or namespace-justified path as a string

Returns
  a function object corresponding to the name or namespace-justified path provided as an argument

Exceptions

  UNKNOWN-FUNCTION | cannot find a function with the given name or path
  ENCODING-CONVERSION-ERROR | this exception could be thrown if the string argument is not in the default character encoding and an error occurs during encoding conversion

## forName() [2/2]

static Function Qore::Reflection::Function::forName | ( | string | path | ) |

static

Returns a Function object from the function name or namespace-justified path as a string.

Code Flags:
  RET_VALUE_ONLY

Example:
  Function f = Function::forName("Qore::printf");

Parameters

  path | the function name or namespace-justified path as a string

Returns
  a function object corresponding to the name or namespace-justified path provided as an argument

Exceptions

  UNKNOWN-FUNCTION | cannot find a function with the given name or path
  ENCODING-CONVERSION-ERROR | this exception could be thrown if the string argument is not in the default character encoding and an error occurs during encoding conversion

## getVariant()

FunctionVariant Qore::Reflection::Function::getVariant | ( |  | ... | ) |

Returns the given direct child function variant declared in this function or throws an exception if the function variant is not defined.

Code Flags:
  RET_VALUE_ONLY

Example:
  FunctionVariant v = n.getVariant(IntType, StringType);

Parameters

  ... | type arguments for the variant; types must be compatible for the search to be successful

Returns
  given function variant or throws an exception if the function variant is not defined in this function

Exceptions

  PROGRAM-ERROR | thrown if the Program object holding the function has been destroyed
  VARIANT-MATCH-ERROR | thrown if the function variant cannot be matched to the given arguments
  ENCODING-CONVERSION-ERROR | this exception could be thrown if the string argument is not in the default character encoding and an error occurs during encoding conversion

See also
  - getVariantArgs()
  - getExactVariant()
  - getExactVariantArgs()

## getVariantArgs()

FunctionVariant Qore::Reflection::Function::getVariantArgs | ( | softlist< Type > | argv | ) |

Returns the given direct child function variant declared in this function or throws an exception if the function variant is not defined.

Code Flags:
  RET_VALUE_ONLY

Example:
  FunctionVariant v = n.getVariantArgs((IntType, StringType));

Parameters

  argv | type arguments for the variant; types must be compatible for the search to be successful

Returns
  given function variant or throws an exception if the function variant is not defined in this function

Exceptions

  PROGRAM-ERROR | thrown if the Program object holding the function has been destroyed
  VARIANT-MATCH-ERROR | thrown if the function variant cannot be matched to the given arguments
  ENCODING-CONVERSION-ERROR | this exception could be thrown if the string argument is not in the default character encoding and an error occurs during encoding conversion

See also
  - getVariant()
  - getExactVariant()
  - getExactVariantArgs()

## getVariants()

list< FunctionVariant > Qore::Reflection::Function::getVariants | ( |  | ) |

returns the variants implemented by the function

Code Flags:
  RET_VALUE_ONLY

Example:
  list<FunctionVariant> l = f.getVariants();

Returns
  the variants implemented by the function

Exceptions

  PROGRAM-ERROR | thrown if the Program object holding the function has been destroyed

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

- modules/reflection/src/QC_Function.dox.h