18 #define impl_afw_value_optional_release NULL
19 #define impl_afw_value_get_reference NULL
23 #define AFW_IMPLEMENTATION_SPECIFIC (const void *)&afw_data_type_function_direct
26 #define AFW_IMPLEMENTATION_INF_VARIABLES \
27 (const void *)&afw_data_type_function_direct, \
30 #define impl_afw_value_get_evaluated_meta \
31 afw_value_internal_get_evaluated_meta_default
33 #define impl_afw_value_get_evaluated_metas \
34 afw_value_internal_get_evaluated_metas_default
37 #define AFW_IMPLEMENTATION_ID "function_thunk"
38 #define AFW_IMPLEMENTATION_INF_SPECIFIER AFW_DEFINE_CONST_DATA
39 #define AFW_IMPLEMENTATION_INF_LABEL afw_value_function_thunk_inf
60 self->like_function_value = like_function_value;
61 self->execute = execute;
88 impl_afw_value_get_data_type(
99 impl_afw_value_get_evaluated_data_type(
112 impl_afw_value_get_evaluated_data_type_parameter(
125 impl_afw_value_produce_compiler_listing(
133 afw_value_compiler_listing_begin_value(writer, instance,
151 impl_afw_value_decompile(
156 #ifdef __FIXME_REMOVE_
162 impl_decompile_type(writer, self->returns, xctx);
170 for (i = 0; i <
self->count; i++) {
177 impl_decompile_type(writer, self->parameters[i]->type, xctx);
206 impl_afw_value_get_info(
216 info->value_inf_id = &instance->inf->rti.implementation_id;
217 info->detail =
self->detail;
AFW_DEFINE(const afw_object_t *)
Adaptive Framework Core Internal.
Interface afw_interface implementation declares.
afw_data_type_function
Data type struct for function.
#define AFW_UTF8_FMT_ARG(A_STRING)
Convenience Macro for use with AFW_UTF8_FMT to specify arg.
#define AFW_UTF8_FMT
Format string specifier used for afw_utf8_t.
afw_utf8_octet_t afw_utf8_z_t
NFC normalized UTF-8 null terminated string.
apr_size_t afw_size_t
size_t.
const afw_value_t *(* afw_function_thunk_execute_t)(const afw_value_function_thunk_t *function, afw_size_t argc, const afw_value_t *const *argv, const afw_pool_t *p, afw_xctx_t *xctx)
Typedef for function thunk execute functions.
#define afw_memory_clear(to)
Clear preallocated memory for sizeof(*(to)).
#define afw_pool_calloc_type(instance, type, xctx)
Macro to allocate cleared memory to hold type in pool.
afw_utf8_printf(const afw_pool_t *p, afw_xctx_t *xctx, const afw_utf8_z_t *format,...)
Create a utf-8 string using a c format string in specified pool.
const afw_value_t * impl_afw_value_optional_evaluate(const afw_value_t *instance, const afw_pool_t *p, afw_xctx_t *xctx)
#define afw_value_decompile(instance, writer, xctx)
Call method decompile of interface afw_value.
afw_value_function_thunk_inf
Value function thunk inf.
afw_value_function_thunk_create_impl(const afw_utf8_t *name, const afw_value_t *like_function_value, afw_function_thunk_execute_t execute, void *ctx, const afw_utf8_z_t *source_z, const afw_pool_t *p, afw_xctx_t *xctx)
Create a function thunk value.
#define afw_writer_increment_indent(instance, xctx)
Call method increment_indent of interface afw_writer.
#define afw_writer_write_eol(instance, xctx)
Call method write_eol of interface afw_writer.
#define afw_writer_decrement_indent(instance, xctx)
Call method decrement_indent of interface afw_writer.
#define afw_writer_write_z(writer, s_z, xctx)
Call afw_writer_write() with zero terminated string.
#define afw_writer_write_utf8(writer, S, xctx)
Call afw_writer_write() with a afw_utf8_t string.
Interface afw_data_type public struct.
Interface afw_pool public struct.
NFC normalized UTF-8 string.
Struct for function thunk value.
Filled in by afw_value get_info method.
Interface afw_value public struct.
Interface afw_writer public struct.
Interface afw_xctx public struct.