Adaptive Framework  0.9.0
All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Modules Pages
afw_value_impl_declares.h
Go to the documentation of this file.
1 // See the 'COPYING' file in the project root for licensing information.
2 /*
3  * Interface afw_interface Implementation Declares
4  *
5  * Copyright (c) 2010-2023 Clemson University
6  *
7  */
8 
10 
12 
78 #ifdef __AFW_VALUE_IMPL_DECLARES_H__
79 #ifndef AFW_VALUE_INF_ONLY
80 #error "afw_value_impl_declares.h already included."
81 #endif
82 #endif
83 #ifndef __AFW_VALUE_IMPL_DECLARES_H__
84 #ifdef AFW_VALUE_INF_ONLY
85 #error "afw_value_impl_declares.h must be included before AFW_VALUE_INF_ONLY."
86 #endif
87 #define __AFW_VALUE_IMPL_DECLARES_H__ 1
88 #endif
89 
90 #ifdef AFW_IMPLEMENTATION_ID
91 #define _AFW_IMPLEMENTATION_ID_ AFW_IMPLEMENTATION_ID
92 #else
93 #define _AFW_IMPLEMENTATION_ID_ "unspecified"
94 #endif
95 #ifdef AFW_IMPLEMENTATION_SPECIFIC
96 #define _AFW_IMPLEMENTATION_SPECIFIC_ AFW_IMPLEMENTATION_SPECIFIC
97 #else
98 #define _AFW_IMPLEMENTATION_SPECIFIC_ NULL
99 #endif
100 #ifndef AFW_VALUE_INF_ONLY
101 
102 #ifndef impl_afw_value_optional_release
103 /* Declare method optional_release */
104 AFW_DECLARE_STATIC(void)
105 impl_afw_value_optional_release(
106  const afw_value_t * instance,
107  afw_xctx_t * xctx);
108 #endif
109 
110 #ifndef impl_afw_value_get_reference
111 /* Declare method get_reference */
112 AFW_DECLARE_STATIC(const afw_value_t *)
113 impl_afw_value_get_reference(
114  const afw_value_t * instance,
115  const afw_pool_t * p,
116  afw_xctx_t * xctx);
117 #endif
118 
119 #ifndef impl_afw_value_optional_evaluate
120 /* Declare method optional_evaluate */
121 AFW_DECLARE_STATIC(const afw_value_t *)
123  const afw_value_t * instance,
124  const afw_pool_t * p,
125  afw_xctx_t * xctx);
126 #endif
127 
128 #ifndef impl_afw_value_get_data_type
129 /* Declare method get_data_type */
130 AFW_DECLARE_STATIC(const afw_data_type_t *)
131 impl_afw_value_get_data_type(
132  const afw_value_t * instance,
133  afw_xctx_t * xctx);
134 #endif
135 
136 #ifndef impl_afw_value_get_evaluated_data_type
137 /* Declare method get_evaluated_data_type */
138 AFW_DECLARE_STATIC(const afw_data_type_t *)
139 impl_afw_value_get_evaluated_data_type(
140  const afw_value_t * instance,
141  afw_xctx_t * xctx);
142 #endif
143 
144 #ifndef impl_afw_value_get_evaluated_data_type_parameter
145 /* Declare method get_evaluated_data_type_parameter */
146 AFW_DECLARE_STATIC(const afw_utf8_t *)
147 impl_afw_value_get_evaluated_data_type_parameter(
148  const afw_value_t * instance,
149  afw_xctx_t * xctx);
150 #endif
151 
152 #ifndef impl_afw_value_get_evaluated_meta
153 /* Declare method get_evaluated_meta */
154 AFW_DECLARE_STATIC(const afw_value_t *)
156  const afw_value_t * instance,
157  const afw_pool_t * p,
158  afw_xctx_t * xctx);
159 #endif
160 
161 #ifndef impl_afw_value_get_evaluated_metas
162 /* Declare method get_evaluated_metas */
163 AFW_DECLARE_STATIC(const afw_value_t *)
164 impl_afw_value_get_evaluated_metas(
165  const afw_value_t * instance,
166  const afw_pool_t * p,
167  afw_xctx_t * xctx);
168 #endif
169 
170 #ifndef impl_afw_value_produce_compiler_listing
171 /* Declare method produce_compiler_listing */
172 AFW_DECLARE_STATIC(void)
173 impl_afw_value_produce_compiler_listing(
174  const afw_value_t * instance,
175  const afw_writer_t * writer,
176  afw_xctx_t * xctx);
177 #endif
178 
179 #ifndef impl_afw_value_decompile
180 /* Declare method decompile */
181 AFW_DECLARE_STATIC(void)
182 impl_afw_value_decompile(
183  const afw_value_t * instance,
184  const afw_writer_t * writer,
185  afw_xctx_t * xctx);
186 #endif
187 
188 #ifndef impl_afw_value_get_info
189 /* Declare method get_info */
190 AFW_DECLARE_STATIC(void)
191 impl_afw_value_get_info(
192  const afw_value_t * instance,
193  afw_value_info_t * info,
194  const afw_pool_t * p,
195  afw_xctx_t * xctx);
196 #endif
197 #endif
198 
199 /* inf for interface afw_value */
200 #ifdef __BASE_FILE__
201 #define _AFW_IMPLEMENTATION_SOURCE_FILE_ __BASE_FILE__
202 #else
203 #define _AFW_IMPLEMENTATION_SOURCE_FILE_ __FILE__
204 #endif
205 #ifdef AFW_IMPLEMENTATION_INF_SPECIFIER
206 AFW_IMPLEMENTATION_INF_SPECIFIER(afw_value_inf_t)
207 #else
208 static const afw_value_inf_t
209 #endif
210 #ifdef AFW_IMPLEMENTATION_INF_LABEL
211 AFW_IMPLEMENTATION_INF_LABEL = {
212 #else
213 impl_afw_value_inf = {
214 #endif
215  {
216  AFW_UTF8_LITERAL("afw_value"),
217  AFW_UTF8_LITERAL(_AFW_IMPLEMENTATION_SOURCE_FILE_),
218  AFW_UTF8_LITERAL(_AFW_IMPLEMENTATION_ID_),
219  _AFW_IMPLEMENTATION_SPECIFIC_
220  },
221  impl_afw_value_optional_release,
222  impl_afw_value_get_reference,
224  impl_afw_value_get_data_type,
225  impl_afw_value_get_evaluated_data_type,
226  impl_afw_value_get_evaluated_data_type_parameter,
228  impl_afw_value_get_evaluated_metas,
229  impl_afw_value_produce_compiler_listing,
230  impl_afw_value_decompile,
231  impl_afw_value_get_info
232 #ifdef AFW_IMPLEMENTATION_INF_VARIABLES
233  ,AFW_IMPLEMENTATION_INF_VARIABLES
234 #endif
235 
236 };
237 
238 #undef _AFW_IMPLEMENTATION_ID_
239 #undef _AFW_IMPLEMENTATION_SPECIFIC_
240 #undef _AFW_IMPLEMENTATION_SOURCE_FILE_
241 
#define AFW_BEGIN_DECLARES
Interface afw_interface opaque typedefs.
#define AFW_UTF8_LITERAL(A_STRING)
String literal initializer.
Definition: afw_common.h:582
impl_afw_value_get_evaluated_meta(const afw_value_t *instance, const afw_pool_t *p, afw_xctx_t *xctx)
impl_afw_value_optional_evaluate(const afw_value_t *instance, const afw_pool_t *p, afw_xctx_t *xctx)
Interface afw_data_type public struct.
Interface afw_pool public struct.
NFC normalized UTF-8 string.
Definition: afw_common.h:545
Interface afw_value_inf_s struct.
Filled in by afw_value get_info method.
Definition: afw_value.h:49
Interface afw_value public struct.
Interface afw_writer public struct.
Interface afw_xctx public struct.