Adaptive Framework  0.9.0
All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Modules Pages
afw_context.h
Go to the documentation of this file.
1 // See the 'COPYING' file in the project root for licensing information.
2 /*
3  * Adaptive Framework Context
4  *
5  * Copyright (c) 2010-2023 Clemson University
6  *
7  */
8 
9 #ifndef __AFW_CONTEXT_H__
10 #define __AFW_CONTEXT_H__
11 
12 #include "afw_interface.h"
13 
29 
32  const afw_utf8_t *name;
33  const afw_value_inf_t *value_inf;
34  const afw_data_type_t *data_type;
35  const afw_utf8_z_t *label_z;
36  const afw_utf8_z_t *data_type_parameter_z;
37  const afw_utf8_z_t *data_type_parameter_formatted_z;
38 };
39 
40 
41 
45  const afw_utf8_z_t *description_z;
47  int include_mask;
48 };
49 
50 
51 
60 AFW_DECLARE(void)
62  const afw_utf8_t *qualifier_id,
63  const afw_context_cb_variable_t *const *variables,
64  void *data,
65  const afw_pool_t *p,
66  afw_xctx_t *xctx);
67 
68 
69 
80  const afw_utf8_t *context_type_id,
81  const afw_pool_t *p,
82  afw_xctx_t *xctx);
83 
84 
85 
98  const afw_object_t *context_type_object,
99  afw_xctx_t *xctx);
100 
101 
102 
114 AFW_DECLARE(const afw_object_t *)
116  const afw_object_t *context_type_object,
117  const afw_utf8_t *qualifier_id,
118  afw_xctx_t *xctx);
119 
120 
121 
129 AFW_DECLARE(void)
131  const afw_object_t *qualifier_definitions,
132  const afw_object_t *definitions_to_add,
133  afw_boolean_t replace_duplicates,
134  afw_xctx_t *xctx);
135 
136 
137 
150 AFW_DECLARE(void)
152  const afw_utf8_t *context_type_id,
153  const afw_utf8_t *qualifier_id,
154  const afw_utf8_octet_t *description_z,
155  const afw_context_cb_variable_t *const *variables,
156  int include_mask,
157  afw_xctx_t *xctx);
158 
159 
160 
173 AFW_DECLARE(void)
175  const afw_object_t *variable_definitions,
176  const afw_utf8_t *variable_name,
177  const afw_utf8_t *source,
178  const afw_value_inf_t *value_inf,
179  const afw_utf8_z_t *label_z,
180  const afw_utf8_z_t *description_z,
181  const afw_utf8_z_t *data_type_parameter_z,
182  const afw_utf8_z_t *data_type_parameter_formatted_z,
183  afw_xctx_t *xctx);
184 
185 
193 AFW_DECLARE(void)
195  const afw_object_t *variable_definitions,
196  const afw_object_t *definitions_to_add,
197  afw_boolean_t replace_duplicates,
198  afw_xctx_t *xctx);
199 
200 
201 
216 AFW_DECLARE(void)
218  const afw_object_t *variable_definitions,
219  const afw_object_t *object,
220  afw_xctx_t *xctx);
221 
222 
223 
234 AFW_DECLARE(void)
236  const afw_object_t *variable_definitions,
237  const afw_utf8_t *object_type_id,
238  afw_boolean_t include_evaluated,
239  afw_xctx_t *xctx);
240 
241 
242 
252 AFW_DECLARE(void)
254  const afw_object_t *context_type_object,
255  const afw_object_t *object,
256  const afw_utf8_t *qualifier_id,
257  const afw_utf8_t *source_location,
258  afw_xctx_t *xctx);
259 
260 
269 AFW_DECLARE(void)
271  const afw_object_t *context_type_object,
272  const afw_object_t *objects,
273  const afw_utf8_t *source_location,
274  afw_xctx_t *xctx);
275 
276 
277 
278 
279 AFW_END_DECLARES
280 
283 #endif /* __AFW_CONTEXT_H__ */
#define AFW_BEGIN_DECLARES
#define AFW_DECLARE(type)
Declare a public afw function.
Interfaceafw_interface header.
_Bool afw_boolean_t
Definition: afw_common.h:373
afw_utf8_octet_t afw_utf8_z_t
NFC normalized UTF-8 null terminated string.
Definition: afw_common.h:523
char afw_utf8_octet_t
8 bits of utf-8 codepoint.
Definition: afw_common.h:236
const afw_value_t *(* afw_xctx_get_variable_t)(const afw_xctx_qualifier_stack_entry_t *entry, const afw_utf8_t *name, afw_xctx_t *xctx)
Typedef for function to get a qualified variable.
Definition: afw_common.h:969
void afw_context_variable_definitions_add(const afw_object_t *variable_definitions, const afw_object_t *definitions_to_add, afw_boolean_t replace_duplicates, afw_xctx_t *xctx)
Add variable definitions.
Definition: afw_context.c:251
void afw_context_qualifier_definitions_merge(const afw_object_t *qualifier_definitions, const afw_object_t *definitions_to_add, afw_boolean_t replace_duplicates, afw_xctx_t *xctx)
Merge qualifier definitions.
Definition: afw_context.c:277
void afw_context_variable_definitions_add_based_on_object(const afw_object_t *variable_definitions, const afw_object_t *object, afw_xctx_t *xctx)
Add variable definitions based on object.
Definition: afw_context.c:315
void afw_context_variable_definition_add_z(const afw_object_t *variable_definitions, const afw_utf8_t *variable_name, const afw_utf8_t *source, const afw_value_inf_t *value_inf, const afw_utf8_z_t *label_z, const afw_utf8_z_t *description_z, const afw_utf8_z_t *data_type_parameter_z, const afw_utf8_z_t *data_type_parameter_formatted_z, afw_xctx_t *xctx)
Add variable definition using 0 terminated label and description.
Definition: afw_context.c:190
void afw_context_type_register_cb_variables(const afw_utf8_t *context_type_id, const afw_utf8_t *qualifier_id, const afw_utf8_octet_t *description_z, const afw_context_cb_variable_t *const *variables, int include_mask, afw_xctx_t *xctx)
Register context type id for array of current variable callbacks.
Definition: afw_context.c:135
void afw_context_variable_definitions_compile_and_add_based_on_qualifiers_object(const afw_object_t *context_type_object, const afw_object_t *objects, const afw_utf8_t *source_location, afw_xctx_t *xctx)
Compile and add variable definitions based on AdaptiveHybridProperties object.
Definition: afw_context.c:542
const afw_object_t * afw_context_type_insure_qualifier_definitions_object_exists(const afw_object_t *context_type_object, afw_xctx_t *xctx)
Insure qualifier definitions object exists.
Definition: afw_context.c:85
void afw_context_variable_definitions_compile_and_add_based_on_object(const afw_object_t *context_type_object, const afw_object_t *object, const afw_utf8_t *qualifier_id, const afw_utf8_t *source_location, afw_xctx_t *xctx)
Compile and add variable definitions based on AdaptiveHybridProperties object.
Definition: afw_context.c:513
const afw_object_t * afw_context_type_insure_variable_definitions_object_exists(const afw_object_t *context_type_object, const afw_utf8_t *qualifier_id, afw_xctx_t *xctx)
Insure variable definitions object exists for qualifier id.
Definition: afw_context.c:109
void afw_context_variable_definitions_add_based_on_object_type_id(const afw_object_t *variable_definitions, const afw_utf8_t *object_type_id, afw_boolean_t include_evaluated, afw_xctx_t *xctx)
Add variable definitions based on object type id.
Definition: afw_context.c:433
const afw_object_t * afw_context_type_create(const afw_utf8_t *context_type_id, const afw_pool_t *p, afw_xctx_t *xctx)
Create a context type object.
Definition: afw_context.c:64
void afw_context_push_cb_variables(const afw_utf8_t *qualifier_id, const afw_context_cb_variable_t *const *variables, void *data, const afw_pool_t *p, afw_xctx_t *xctx)
Push NULL terminated list of variable callback structs.
Definition: afw_context.c:47
Struct used in afw_context_cb_variable_s.
Definition: afw_context.h:31
Struct passed to afw_context_type_register_cb_variables()
Definition: afw_context.h:43
Interface afw_data_type public struct.
Interface afw_object public struct.
Interface afw_pool public struct.
NFC normalized UTF-8 string.
Definition: afw_common.h:545
Interface afw_value_inf_s struct.
Interface afw_xctx public struct.