19 #define impl_afw_object_get_meta \
20 afw_object_impl_internal_get_meta
22 #define impl_afw_object_get_property_meta \
23 afw_object_impl_internal_get_property_meta
25 #define impl_afw_object_get_next_property_meta \
26 afw_object_impl_internal_get_next_property_meta
29 #define AFW_IMPLEMENTATION_ID "afw_environment_registry"
36 impl_current_object = {
43 &afw_s__AdaptiveEnvironmentRegistry_,
54 return &impl_current_object;
63 impl_afw_object_release (
76 impl_afw_object_add_reference (
122 impl_make_registry_type_value(
131 impl_entry_cb, xctx);
142 impl_afw_object_get_property (
150 property_name, xctx);
152 return (type && type->object_type_id)
153 ? impl_make_registry_type_value(type->object_type_id, xctx)
163 impl_afw_object_get_next_property (
169 int registry_type_number;
174 registry_type_number = (
int)(*((
char **)iterator) - (
char *)0);
177 registry_type_number, xctx));
179 registry_type_number++)
181 if (registry_type->object_type_id) {
182 result = impl_make_registry_type_value(
183 registry_type->object_type_id, xctx);
189 *(
char **)iterator = (
char *)0 + registry_type_number + 1;
191 *property_name = registry_type->property_name;
198 *property_name = NULL;
211 impl_afw_object_has_property (
216 return impl_afw_object_get_property(instance, property_name, xctx) != NULL;
225 impl_afw_object_get_setter (
AFW_DEFINE(const afw_object_t *)
Adaptive Framework Core Internal.
Interface afw_interface implementation declares.
afw_object_set_property_as_object(const afw_object_t *object, const afw_utf8_t *property_name, const afw_object_t *internal, afw_xctx_t *xctx)
Set property function for data type object values.
afw_value_create_object(const afw_object_t *internal, const afw_pool_t *p, afw_xctx_t *xctx)
Create function for unmanaged data type object value.
#define AFW_UTF8_LITERAL(A_STRING)
String literal initializer.
struct afw_iterator_s afw_iterator_t
apr_size_t afw_size_t
size_t.
const afw_environment_registry_type_t * afw_environment_get_registry_type(const afw_utf8_t *property_name, afw_xctx_t *xctx)
Get the registry type associated with property name.
afw_environment_get_registry_type_by_number(int registry_type_number, afw_xctx_t *xctx)
Get the registry type associated with a registry type number.
afw_environment_registry_object_get_current(afw_xctx_t *xctx)
Get current environment registry object.
#define AFW_THROW_ERROR_Z(code, message_z, xctx)
Macro used to set error and 0 rv in xctx and throw it.
afw_size_t impl_afw_object_get_count(const afw_object_t *instance, afw_xctx_t *xctx)
#define afw_object_create_managed(p, xctx)
Create an empty entity object in its own pool.
afw_runtime_foreach(const afw_utf8_t *object_type_id, void *context, afw_object_cb_t callback, afw_xctx_t *xctx)
Call a callback for each runtime object.
Interface afw_object public struct.
Interface afw_object_setter public struct.
NFC normalized UTF-8 string.
Interface afw_value public struct.
Interface afw_xctx public struct.