Adaptive Framework  0.9.0
All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Modules Pages
afw_object_view_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 View Internal Header
4  *
5  * Copyright (c) 2010-2023 Clemson University
6  *
7  */
8 
9 #ifndef __NEW_AFW_OBJECT_VIEW_INTERNAL_H__
10 #define __NEW_AFW_OBJECT_VIEW_INTERNAL_H__
11 
12 #include "afw_interface.h"
13 #include "afw_utf8.h"
14 
30 
33 
36 
37 typedef struct afw_object_view_property_s
39 
40 typedef struct afw_object_view_string_list_s
42 
43 typedef struct afw_object_view_parent_s
45 
46 /* Property */
48 
49  /* Next property. */
50  afw_object_view_property_t *next_property;
51 
52  /* Property name. */
53  const afw_utf8_t *name;
54 
55  /* Property value. */
56  const afw_value_t *value;
57 
58  /* Origin of property. */
59  const afw_object_t *origin;
60 
61 };
62 
63 
64 /* String list */
67  afw_utf8_t string;
68 };
69 
70 
71 /* Parent. */
73 
74  /* Path as specified in origin object. */
75  const afw_utf8_t *path;
76 
77  /* Resolved path name where ../ is replaced. */
78  const afw_utf8_t *resolved_path;
79 
80  /* Internal parent object or NULL if not composite option. */
82 
83 };
84 
85 
86 /* Object self. */
88 
89  /* Public part of object. */
90  afw_object_t pub;
91 
92  /* View common info. */
94 
95  /* afw_uri_parsed_t */
96  const afw_uri_parsed_t *uri_parsed;
97 
98  /* Next loaded entity if this is an entity object. See view->first_entity. */
100 
101  /* List of pointers to object's origin properties. */
102  afw_object_view_property_t *first_property;
103 
104  /*
105  * Object passed as origin parameter on impl_object_create().
106  *
107  * Warning: May not be valid after return from afw_object_view_create().
108  * May not be cloned and caller may release it.
109  */
110  const afw_object_t *origin;
111 
112  /* NULL terminated list of parents or NULL if not determined yet. */
114 
115  /* Indicates that inherited properties are being added. */
116  afw_boolean_t inherited_properties_being_added;
117 
118  /* Indicates that inherited properties have been added. */
119  afw_boolean_t inherited_properties_added;
120 
121 };
122 
123 
125 
133  const afw_pool_t *p;
134 
135  /* Reference_count starting at 1 on create. */
136  AFW_ATOMIC afw_integer_t reference_count;
137 
146 
149 
152 
155 
158 
160  apr_hash_t *string_values;
161 
163  apr_hash_t *path_values;
164 };
165 
166 AFW_END_DECLARES
167 
170 #endif /* __NEW_AFW_OBJECT_VIEW_INTERNAL_H__ */
#define AFW_BEGIN_DECLARES
Interfaceafw_interface header.
AFW String functions.
_Bool afw_boolean_t
Definition: afw_common.h:373
apr_int64_t afw_integer_t
typedef for big signed int.
Definition: afw_common.h:321
Struct for object processing options.
Interface afw_object public struct.
apr_hash_t * string_values
Shared string values.
afw_object_view_internal_object_self_t * main_entity
First loaded entity.
const afw_object_t * journal_entry
Journal entry used during path resolution.
const afw_uri_parsed_t * uri_parsed
Parsed URI for view entity.
const afw_pool_t * p
Pool used for all resources in view.
const afw_object_options_t * options
View options.
apr_hash_t * path_values
Shared path values.
const afw_utf8_t * adaptor_id
Parsed URI for view entity.
Interface afw_pool public struct.
Typedef for parsed URI returned from afw_uri_parse().
Definition: afw_uri.h:133
NFC normalized UTF-8 string.
Definition: afw_common.h:545
Interface afw_value public struct.