Adaptive Framework
0.9.0
Main Page
Modules
Data Structures
Data Structures
Data Structure Index
Data Fields
All
a
b
c
d
e
f
g
h
i
j
l
m
n
o
p
q
r
s
t
u
v
w
x
y
Variables
a
b
c
d
e
f
g
h
i
j
l
m
n
o
p
q
r
s
t
u
v
w
x
y
Files
File List
Globals
All
a
i
o
Functions
a
i
Variables
a
Typedefs
a
i
Enumerations
Enumerator
a
Macros
a
i
o
•
All
Data Structures
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Macros
Modules
Pages
src
afw
object
afw_object_internal.h
Go to the documentation of this file.
1
// See the 'COPYING' file in the project root for licensing information.
2
/*
3
* Adaptive Framework Object Internal Header
4
*
5
* Copyright (c) 2010-2023 Clemson University
6
*
7
*/
8
9
#ifndef __AFW_OBJECT_INTERNAL_H__
10
#define __AFW_OBJECT_INTERNAL_H__
11
12
#include "
afw_interface.h
"
13
#include <apr_ring.h>
14
#include <apr_hash.h>
15
30
AFW_BEGIN_DECLARES
31
32
typedef
struct
afw_object_internal_memory_object_s
33
afw_object_internal_memory_object_t
;
34
38
typedef
struct
afw_object_internal_name_value_entry_s
39
afw_object_internal_name_value_entry_t
;
40
41
45
struct
afw_object_internal_name_value_entry_s
{
46
afw_object_internal_name_value_entry_t
*next;
47
const
afw_utf8_t
*name;
48
const
afw_value_t
*value;
49
};
50
51
52
struct
afw_object_internal_memory_object_s
{
53
afw_object_t
pub;
54
afw_object_setter_t
setter;
55
56
/*
57
* Implementation supports both property list and property hash table.
58
* See boolean use_properties_ht to determine which is being used.
59
*/
60
union
{
61
afw_object_internal_name_value_entry_t
*first_property;
62
apr_hash_t *properties_ht;
63
};
64
65
afw_boolean_t
immutable;
66
afw_boolean_t
clone_on_set;
67
afw_boolean_t
unmanaged;
68
afw_boolean_t
managed_by_entity;
69
70
/* Reference_count starting at 1 on create. */
71
AFW_ATOMIC
afw_integer_t
reference_count;
72
};
73
74
75
76
/* Self for meta accessor object. */
77
typedef
struct
{
78
afw_object_t
pub;
79
80
/* Mutable object or NULL if always immutable. */
81
const
afw_object_t
*
mutable
;
82
83
/* The objects to search. */
84
const
afw_object_t
* *objects;
85
86
/* Address of end of objects array. */
87
const
afw_object_t
* *end;
88
89
/* Object is immutable. */
90
afw_boolean_t
immutable;
91
92
}
afw_object_internal_composite_self_t
;
93
94
95
96
/* Self for meta accessor object. */
97
typedef
struct
{
98
afw_object_t
pub;
99
afw_object_setter_t
setter;
100
101
/* Passed on create. */
102
void
*data;
103
104
/* Array of callback entries. */
105
const
afw_object_properties_callback_entry_t
*callbacks;
106
107
/* Address of end of callback entries. */
108
const
afw_object_properties_callback_entry_t
*end;
109
110
/* Object is immutable. */
111
afw_boolean_t
immutable;
112
113
}
afw_object_internal_properties_callback_self_t
;
114
115
116
117
/* Self for meta accessor object. */
118
typedef
struct
{
119
afw_object_t
pub;
120
121
/* Private implementation variables */
122
const
afw_object_t
*instance;
123
const
afw_object_options_t
*options;
124
const
afw_iterator_t
*iterator;
125
afw_boolean_t
embedded;
126
afw_boolean_t
limited_meta;
127
128
}
afw_object_internal_meta_accessor_self_t
;
129
130
131
/* Self for meta properties object. */
132
typedef
struct
{
133
afw_object_t
pub;
134
135
}
afw_object_internal_meta_properties_self_t
;
136
137
138
/* Self for meta property object. */
139
typedef
struct
{
140
afw_object_t
pub;
141
142
}
afw_object_internal_meta_property_self_t
;
143
144
145
/* Self for meta propertyType object. */
146
typedef
struct
{
147
afw_object_t
pub;
148
149
}
afw_object_internal_meta_propertyType_self_t
;
150
151
152
/* Self for meta propertyTypes object. */
153
typedef
struct
{
154
afw_object_t
pub;
155
156
}
afw_object_internal_meta_propertyTypes_self_t
;
157
158
159
/* Self typedef "const for key value string" entry. */
160
typedef
struct
161
afw_object_const_key_value_string_entry_s
{
162
afw_utf8_t
key;
163
afw_value_string_t
value;
164
}
afw_object_const_key_value_string_entry_t
;
165
166
167
/* Self typedef "const for key value string" implementation of afw_object. */
168
typedef
struct
169
afw_object_const_key_value_self_s
{
170
afw_object_t
pub;
171
172
afw_size_t
entry_count;
173
const
afw_object_const_key_value_string_entry_t
*entry;
174
const
afw_object_const_key_value_string_entry_t
*entry_end;
175
176
}
afw_object_const_key_value_self_t
;
177
178
179
/* Self typedef for afw_object_aggregate_external object implementation. */
180
typedef
struct
181
afw_object_aggregate_external_self_s
{
182
afw_object_t
pub;
183
const
afw_object_t
*
const
*object_list;
184
struct
{
185
const
afw_object_t
*
const
*object;
186
const
afw_iterator_t
*iterator;
187
} iterator;
188
}
afw_object_aggregate_external_self_t
;
189
190
AFW_END_DECLARES
191
194
#endif
/* __AFW_OBJECT_INTERNAL_H__ */
AFW_BEGIN_DECLARES
#define AFW_BEGIN_DECLARES
Definition:
afw_declare_helpers.h:40
afw_interface.h
Interfaceafw_interface header.
afw_iterator_t
struct afw_iterator_s afw_iterator_t
Definition:
afw_common_opaques.h:400
afw_boolean_t
_Bool afw_boolean_t
Definition:
afw_common.h:373
afw_size_t
apr_size_t afw_size_t
size_t.
Definition:
afw_common.h:151
afw_integer_t
apr_int64_t afw_integer_t
typedef for big signed int.
Definition:
afw_common.h:321
afw_object_aggregate_external_self_s
Definition:
afw_object_internal.h:181
afw_object_const_key_value_self_s
Definition:
afw_object_internal.h:169
afw_object_const_key_value_string_entry_s
Definition:
afw_object_internal.h:161
afw_object_internal_composite_self_t
Definition:
afw_object_internal.h:77
afw_object_internal_memory_object_s
Definition:
afw_object_internal.h:52
afw_object_internal_meta_accessor_self_t
Definition:
afw_object_internal.h:118
afw_object_internal_meta_properties_self_t
Definition:
afw_object_internal.h:132
afw_object_internal_meta_property_self_t
Definition:
afw_object_internal.h:139
afw_object_internal_meta_propertyType_self_t
Definition:
afw_object_internal.h:146
afw_object_internal_meta_propertyTypes_self_t
Definition:
afw_object_internal.h:153
afw_object_internal_name_value_entry_s
Struct for name/value list entry.
Definition:
afw_object_internal.h:45
afw_object_internal_properties_callback_self_t
Definition:
afw_object_internal.h:97
afw_object_options_s
Struct for object processing options.
Definition:
afw_object_options.h:36
afw_object_properties_callback_entry_s
Struct for afw_object_properties_callback_entry_t.
Definition:
afw_object.h:839
afw_object_s
Interface afw_object public struct.
Definition:
afw_interface.h:3197
afw_object_setter_s
Interface afw_object_setter public struct.
Definition:
afw_interface.h:3119
afw_utf8_s
NFC normalized UTF-8 string.
Definition:
afw_common.h:545
afw_value_s
Interface afw_value public struct.
Definition:
afw_interface.h:5179
afw_value_string_s
struct for data type string values.
Definition:
afw_data_type_string_binding.h:145
Generated on Tue Jun 27 2023 16:19:57 for Adaptive Framework by
1.9.1