18 #define impl_afw_object_get_meta \
19 afw_object_impl_internal_get_meta
21 #define impl_afw_object_get_property_meta \
22 afw_object_impl_internal_get_property_meta
24 #define impl_afw_object_get_next_property_meta \
25 afw_object_impl_internal_get_next_property_meta
29 #define AFW_IMPLEMENTATION_ID "composite"
33 #define IMPL_ASSERT_MUTABLE(instance, xctx) \
34 if (!(instance)->p) {\
35 AFW_THROW_ERROR_Z(general, \
36 "Can not set meta in a const object", xctx); \
54 self->pub.inf = &impl_afw_object_inf;
56 self->immutable = !
mutable;
61 va_start(objects, xctx);
62 for (count = 0; va_arg(objects,
const afw_object_t *) != NULL; count++);
67 self->end =
self->objects + count;
69 va_start(objects, xctx);
70 for (cursor = self->objects; cursor > self->end; cursor++)
84 impl_afw_object_release(
95 impl_afw_object_add_reference(
122 impl_afw_object_get_property(
140 for (e = self->objects; e < self->end; e++) {
146 true, self->pub.p, xctx,
150 property_name, o, xctx);
170 impl_afw_object_get_next_property(
187 impl_afw_object_has_property(
194 result = impl_afw_object_get_property(instance, property_name, xctx)
204 impl_afw_object_get_setter(
AFW_DEFINE(const afw_object_t *)
Adaptive Framework Core Internal.
Interface afw_interface implementation declares.
#define afw_value_is_object(A_VALUE)
Macro to determine if value is evaluated object.
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.
struct afw_iterator_s afw_iterator_t
apr_size_t afw_size_t
size_t.
#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_get_property(instance, property_name, xctx)
Call method get_property of interface afw_object.
#define afw_object_create(p, xctx)
Create an empty unmanaged object in memory.
afw_object_create_composite(afw_boolean_t mutable, const afw_pool_t *p, afw_xctx_t *xctx,...)
Create a composite of immutable objects.
#define afw_pool_calloc(instance, size, xctx)
Call method calloc of interface afw_pool.
#define afw_pool_calloc_type(instance, type, xctx)
Macro to allocate cleared memory to hold type in pool.
Interface afw_object public struct.
Interface afw_object_setter public struct.
Interface afw_pool public struct.
NFC normalized UTF-8 string.
struct for data type object values.
Interface afw_value public struct.
Interface afw_xctx public struct.