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 "afw_object_meta_accessor"
47 if (!instance->meta.meta_object && instance->inf == &impl_afw_object_inf)
54 self->pub.inf = &impl_afw_object_inf;
56 self->options = options;
57 self->instance = instance;
58 self->embedded = (instance->meta.embedding_object != NULL);
64 if (!impl_afw_object_get_next_property((
afw_object_t *)
self,
65 &iterator, &property_name, xctx))
69 self->iterator = NULL;
93 impl_afw_object_add_reference(
137 impl_afw_object_get_next_property(
160 state = *(
int *)* iterator;
170 state = (!
self->limited_meta) ? 1 : 2;
179 *property_name = &afw_s_parentPaths;
193 &self->iterator, property_name, xctx);
206 if (!self->embedded &&
209 if (self->limited_meta ||
212 &afw_s_objectId, xctx))
217 *property_name = &afw_s_objectId;
237 (self->limited_meta && self->instance->meta.embedding_object))
239 if (self->limited_meta ||
242 &afw_s_objectType, xctx))
248 *property_name = &afw_s_objectType;
264 if ((!self->embedded &&
271 if (self->limited_meta ||
278 *property_name = &afw_s_path;
301 *(
int *)*iterator = state;
312 impl_afw_object_has_property(
327 impl_afw_object_get_setter(
AFW_DEFINE(const afw_object_t *)
Adaptive Framework Core Internal.
Interface afw_interface implementation declares.
afw_value_create_string(const afw_utf8_t *internal, const afw_pool_t *p, afw_xctx_t *xctx)
Create function for unmanaged data type string 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.
void impl_afw_object_release(const afw_object_t *instance, afw_xctx_t *xctx)
const afw_value_t * impl_afw_object_get_property(const afw_object_t *instance, const afw_utf8_t *property_name, afw_xctx_t *xctx)
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_get_next_property(instance, iterator, property_name, xctx)
Call method get_next_property of interface afw_object.
#define afw_object_has_property(instance, property_name, xctx)
Call method has_property of interface afw_object.
#define AFW_OBJECT_OPTION_IS(_options, _option)
Test mask.
#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.
Struct for object processing options.
Interface afw_object public struct.
Interface afw_object_setter public struct.
Interface afw_pool public struct.
NFC normalized UTF-8 string.
Interface afw_value public struct.
Interface afw_xctx public struct.