Adaptive Framework  0.9.0
All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Modules Pages
afw_interface.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 Header
4  *
5  * Copyright (c) 2010-2023 Clemson University
6  *
7  */
8 
9 /* ----------------------------- N O T E -------------------------------------
10  *
11  * This file is generated by "afwdev generate afw".
12  *
13  * Do not change this file directly or the changes will be lost the next time
14  * this file is regenerated.
15  *
16  * -------------------------------------------------------------------------*/
17 
18 
19 #ifndef __AFW_INTERFACE_H__
20 #define __AFW_INTERFACE_H__
21 
22 
28 #include "afw_interface_common.h"
29 #include "afw_interface_opaques.h"
30 #include "afw_common_opaques.h"
31 
33 
56  const afw_extension_inf_t *inf;
57  afw_utf8_t extension_id;
58  afw_utf8_t extension_version;
59  afw_utf8_t afw_compiled_version;
60  unsigned int afw_compiled_version_hex;
61 };
62 
64 #define AFW_EXTENSION_INTERFACE_NAME \
65 "afw_extension"
66 
68 typedef const afw_extension_t *
69 (*afw_extension_initialize_t)(
70  const afw_extension_t * instance,
71  const afw_object_t * properties,
72  const afw_pool_t * p,
73  afw_xctx_t * xctx);
74 
76 typedef void
78  const afw_extension_t * instance,
79  afw_xctx_t * xctx);
80 
84  afw_extension_initialize_t initialize;
86 };
87 
96 #define afw_extension_initialize( \
97  instance, \
98  properties, \
99  p, \
100  xctx \
101 ) \
102 (instance)->inf->initialize( \
103  (instance), \
104  (properties), \
105  (p), \
106  (xctx) \
107 )
108 
114 #define afw_extension_release( \
115  instance, \
116  xctx \
117 ) \
118 (instance)->inf->release( \
119  (instance), \
120  (xctx) \
121 )
122 
136  const afw_adaptor_factory_inf_t *inf;
137  afw_utf8_t adaptor_type;
138  const afw_utf8_t * description;
139 };
140 
142 #define AFW_ADAPTOR_FACTORY_INTERFACE_NAME \
143 "afw_adaptor_factory"
144 
146 typedef const afw_adaptor_t *
147 (*afw_adaptor_factory_create_adaptor_cede_p_t)(
148  const afw_adaptor_factory_t * instance,
149  const afw_object_t * properties,
150  const afw_pool_t * p,
151  afw_xctx_t * xctx);
152 
156  afw_adaptor_factory_create_adaptor_cede_p_t create_adaptor_cede_p;
157 };
158 
167 #define afw_adaptor_factory_create_adaptor_cede_p( \
168  instance, \
169  properties, \
170  p, \
171  xctx \
172 ) \
173 (instance)->inf->create_adaptor_cede_p( \
174  (instance), \
175  (properties), \
176  (p), \
177  (xctx) \
178 )
179 
195  const afw_adaptor_inf_t *inf;
196  const afw_pool_t * p;
197  afw_utf8_t adaptor_id;
198  const afw_utf8_t * adaptor_type_id;
199  const afw_utf8_t * service_id;
200  const afw_object_t * properties;
201  const afw_utf8_t * source_location;
202  const afw_utf8_t * trace_flag_id;
203  afw_size_t trace_flag_index;
204  const afw_utf8_t * detail_flag_id;
205  afw_size_t detail_flag_index;
206  const afw_adaptor_impl_t * impl;
207 };
208 
210 #define AFW_ADAPTOR_INTERFACE_NAME \
211 "afw_adaptor"
212 
214 typedef void
216  const afw_adaptor_t * instance,
217  afw_xctx_t * xctx);
218 
220 typedef const afw_adaptor_session_t *
221 (*afw_adaptor_create_adaptor_session_t)(
222  const afw_adaptor_t * instance,
223  afw_xctx_t * xctx);
224 
226 typedef const afw_object_t *
227 (*afw_adaptor_get_additional_metrics_t)(
228  const afw_adaptor_t * instance,
229  const afw_pool_t * p,
230  afw_xctx_t * xctx);
231 
235  afw_adaptor_destroy_t destroy;
236  afw_adaptor_create_adaptor_session_t create_adaptor_session;
237  afw_adaptor_get_additional_metrics_t get_additional_metrics;
238 };
239 
245 #define afw_adaptor_destroy( \
246  instance, \
247  xctx \
248 ) \
249 (instance)->inf->destroy( \
250  (instance), \
251  (xctx) \
252 )
253 
259 #define afw_adaptor_create_adaptor_session( \
260  instance, \
261  xctx \
262 ) \
263 (instance)->inf->create_adaptor_session( \
264  (instance), \
265  (xctx) \
266 )
267 
274 #define afw_adaptor_get_additional_metrics( \
275  instance, \
276  p, \
277  xctx \
278 ) \
279 (instance)->inf->get_additional_metrics( \
280  (instance), \
281  (p), \
282  (xctx) \
283 )
284 
302  const afw_adaptor_session_t * session;
303  afw_boolean_t all_object_types_immutable;
304 };
305 
307 #define AFW_ADAPTOR_OBJECT_TYPE_CACHE_INTERFACE_NAME \
308 "afw_adaptor_object_type_cache"
309 
311 typedef const afw_object_type_t *
312 (*afw_adaptor_object_type_cache_get_t)(
313  const afw_adaptor_object_type_cache_t * instance,
314  const afw_utf8_t * object_type_id,
315  afw_boolean_t * final_result,
316  afw_xctx_t * xctx);
317 
319 typedef void
321  const afw_adaptor_object_type_cache_t * instance,
322  const afw_object_type_t * object_type,
323  afw_xctx_t * xctx);
324 
330 };
331 
344 #define afw_adaptor_object_type_cache_get( \
345  instance, \
346  object_type_id, \
347  final_result, \
348  xctx \
349 ) \
350 (instance)->inf->get( \
351  (instance), \
352  (object_type_id), \
353  (final_result), \
354  (xctx) \
355 )
356 
363 #define afw_adaptor_object_type_cache_set( \
364  instance, \
365  object_type, \
366  xctx \
367 ) \
368 (instance)->inf->set( \
369  (instance), \
370  (object_type), \
371  (xctx) \
372 )
373 
389  const afw_adaptor_session_inf_t *inf;
390  const afw_adaptor_t * adaptor;
391  const afw_pool_t * p;
392 };
393 
395 #define AFW_ADAPTOR_SESSION_INTERFACE_NAME \
396 "afw_adaptor_session"
397 
399 typedef void
401  const afw_adaptor_session_t * instance,
402  afw_xctx_t * xctx);
403 
405 typedef void
407  const afw_adaptor_session_t * instance,
408  const afw_adaptor_impl_request_t * impl_request,
409  const afw_utf8_t * object_type_id,
410  const afw_query_criteria_t * criteria,
411  void * context,
412  afw_object_cb_t callback,
413  const afw_object_t * adaptor_type_specific,
414  const afw_pool_t * p,
415  afw_xctx_t * xctx);
416 
418 typedef void
420  const afw_adaptor_session_t * instance,
421  const afw_adaptor_impl_request_t * impl_request,
422  const afw_utf8_t * object_type_id,
423  const afw_utf8_t * object_id,
424  void * context,
425  afw_object_cb_t callback,
426  const afw_object_t * adaptor_type_specific,
427  const afw_pool_t * p,
428  afw_xctx_t * xctx);
429 
431 typedef const afw_utf8_t *
432 (*afw_adaptor_session_add_object_t)(
433  const afw_adaptor_session_t * instance,
434  const afw_adaptor_impl_request_t * impl_request,
435  const afw_utf8_t * object_type_id,
436  const afw_utf8_t * suggested_object_id,
437  const afw_object_t * object,
438  const afw_object_t * adaptor_type_specific,
439  afw_xctx_t * xctx);
440 
442 typedef void
444  const afw_adaptor_session_t * instance,
445  const afw_adaptor_impl_request_t * impl_request,
446  const afw_utf8_t * object_type_id,
447  const afw_utf8_t * object_id,
448  const afw_adaptor_modify_entry_t * const * entry,
449  const afw_object_t * adaptor_type_specific,
450  afw_xctx_t * xctx);
451 
453 typedef void
455  const afw_adaptor_session_t * instance,
456  const afw_adaptor_impl_request_t * impl_request,
457  const afw_utf8_t * object_type_id,
458  const afw_utf8_t * object_id,
459  const afw_object_t * replacement_object,
460  const afw_object_t * adaptor_type_specific,
461  afw_xctx_t * xctx);
462 
464 typedef void
466  const afw_adaptor_session_t * instance,
467  const afw_adaptor_impl_request_t * impl_request,
468  const afw_utf8_t * object_type_id,
469  const afw_utf8_t * object_id,
470  const afw_object_t * adaptor_type_specific,
471  afw_xctx_t * xctx);
472 
475 (*afw_adaptor_session_begin_transaction_t)(
476  const afw_adaptor_session_t * instance,
477  afw_xctx_t * xctx);
478 
480 typedef const afw_adaptor_journal_t *
481 (*afw_adaptor_session_get_journal_interface_t)(
482  const afw_adaptor_session_t * instance,
483  afw_xctx_t * xctx);
484 
486 typedef const afw_adaptor_key_value_t *
487 (*afw_adaptor_session_get_key_value_interface_t)(
488  const afw_adaptor_session_t * instance,
489  afw_xctx_t * xctx);
490 
493 (*afw_adaptor_session_get_index_interface_t)(
494  const afw_adaptor_session_t * instance,
495  afw_xctx_t * xctx);
496 
499 (*afw_adaptor_session_get_object_type_cache_interface_t)(
500  const afw_adaptor_session_t * instance,
501  afw_xctx_t * xctx);
502 
513  afw_adaptor_session_begin_transaction_t begin_transaction;
514  afw_adaptor_session_get_journal_interface_t get_journal_interface;
515  afw_adaptor_session_get_key_value_interface_t get_key_value_interface;
516  afw_adaptor_session_get_index_interface_t get_index_interface;
517  afw_adaptor_session_get_object_type_cache_interface_t get_object_type_cache_interface;
518 };
519 
526 #define afw_adaptor_session_destroy( \
527  instance, \
528  xctx \
529 ) \
530 (instance)->inf->destroy( \
531  (instance), \
532  (xctx) \
533 )
534 
562 #define afw_adaptor_session_retrieve_objects( \
563  instance, \
564  impl_request, \
565  object_type_id, \
566  criteria, \
567  context, \
568  callback, \
569  adaptor_type_specific, \
570  p, \
571  xctx \
572 ) \
573 (instance)->inf->retrieve_objects( \
574  (instance), \
575  (impl_request), \
576  (object_type_id), \
577  (criteria), \
578  (context), \
579  (callback), \
580  (adaptor_type_specific), \
581  (p), \
582  (xctx) \
583 )
584 
609 #define afw_adaptor_session_get_object( \
610  instance, \
611  impl_request, \
612  object_type_id, \
613  object_id, \
614  context, \
615  callback, \
616  adaptor_type_specific, \
617  p, \
618  xctx \
619 ) \
620 (instance)->inf->get_object( \
621  (instance), \
622  (impl_request), \
623  (object_type_id), \
624  (object_id), \
625  (context), \
626  (callback), \
627  (adaptor_type_specific), \
628  (p), \
629  (xctx) \
630 )
631 
662 #define afw_adaptor_session_add_object( \
663  instance, \
664  impl_request, \
665  object_type_id, \
666  suggested_object_id, \
667  object, \
668  adaptor_type_specific, \
669  xctx \
670 ) \
671 (instance)->inf->add_object( \
672  (instance), \
673  (impl_request), \
674  (object_type_id), \
675  (suggested_object_id), \
676  (object), \
677  (adaptor_type_specific), \
678  (xctx) \
679 )
680 
698 #define afw_adaptor_session_modify_object( \
699  instance, \
700  impl_request, \
701  object_type_id, \
702  object_id, \
703  entry, \
704  adaptor_type_specific, \
705  xctx \
706 ) \
707 (instance)->inf->modify_object( \
708  (instance), \
709  (impl_request), \
710  (object_type_id), \
711  (object_id), \
712  (entry), \
713  (adaptor_type_specific), \
714  (xctx) \
715 )
716 
734 #define afw_adaptor_session_replace_object( \
735  instance, \
736  impl_request, \
737  object_type_id, \
738  object_id, \
739  replacement_object, \
740  adaptor_type_specific, \
741  xctx \
742 ) \
743 (instance)->inf->replace_object( \
744  (instance), \
745  (impl_request), \
746  (object_type_id), \
747  (object_id), \
748  (replacement_object), \
749  (adaptor_type_specific), \
750  (xctx) \
751 )
752 
769 #define afw_adaptor_session_delete_object( \
770  instance, \
771  impl_request, \
772  object_type_id, \
773  object_id, \
774  adaptor_type_specific, \
775  xctx \
776 ) \
777 (instance)->inf->delete_object( \
778  (instance), \
779  (impl_request), \
780  (object_type_id), \
781  (object_id), \
782  (adaptor_type_specific), \
783  (xctx) \
784 )
785 
791 #define afw_adaptor_session_begin_transaction( \
792  instance, \
793  xctx \
794 ) \
795 (instance)->inf->begin_transaction( \
796  (instance), \
797  (xctx) \
798 )
799 
805 #define afw_adaptor_session_get_journal_interface( \
806  instance, \
807  xctx \
808 ) \
809 (instance)->inf->get_journal_interface( \
810  (instance), \
811  (xctx) \
812 )
813 
819 #define afw_adaptor_session_get_key_value_interface( \
820  instance, \
821  xctx \
822 ) \
823 (instance)->inf->get_key_value_interface( \
824  (instance), \
825  (xctx) \
826 )
827 
833 #define afw_adaptor_session_get_index_interface( \
834  instance, \
835  xctx \
836 ) \
837 (instance)->inf->get_index_interface( \
838  (instance), \
839  (xctx) \
840 )
841 
848 #define afw_adaptor_session_get_object_type_cache_interface( \
849  instance, \
850  xctx \
851 ) \
852 (instance)->inf->get_object_type_cache_interface( \
853  (instance), \
854  (xctx) \
855 )
856 
873 };
874 
876 #define AFW_ADAPTOR_TRANSACTION_INTERFACE_NAME \
877 "afw_adaptor_transaction"
878 
880 typedef void
882  const afw_adaptor_transaction_t * instance,
883  afw_xctx_t * xctx);
884 
886 typedef void
888  const afw_adaptor_transaction_t * instance,
889  afw_xctx_t * xctx);
890 
896 };
897 
903 #define afw_adaptor_transaction_release( \
904  instance, \
905  xctx \
906 ) \
907 (instance)->inf->release( \
908  (instance), \
909  (xctx) \
910 )
911 
917 #define afw_adaptor_transaction_commit( \
918  instance, \
919  xctx \
920 ) \
921 (instance)->inf->commit( \
922  (instance), \
923  (xctx) \
924 )
925 
942  const afw_query_criteria_filter_entry_t * filter_entry;
943  afw_boolean_t inner_join;
944 };
945 
947 #define AFW_ADAPTOR_IMPL_INDEX_CURSOR_INTERFACE_NAME \
948 "afw_adaptor_impl_index_cursor"
949 
951 typedef void
953  const afw_adaptor_impl_index_cursor_t * instance,
954  afw_xctx_t * xctx);
955 
957 typedef const afw_object_t *
958 (*afw_adaptor_impl_index_cursor_get_next_object_t)(
959  const afw_adaptor_impl_index_cursor_t * instance,
960  const afw_pool_t * pool,
961  afw_xctx_t * xctx);
962 
966  const afw_adaptor_impl_index_cursor_t * instance,
967  const afw_object_t * object,
968  afw_xctx_t * xctx);
969 
972 (*afw_adaptor_impl_index_cursor_inner_join_t)(
973  const afw_adaptor_impl_index_cursor_t * instance,
974  const afw_adaptor_impl_index_cursor_t * cursor,
975  afw_xctx_t * xctx);
976 
980  const afw_adaptor_impl_index_cursor_t * instance,
981  size_t * count,
982  afw_xctx_t * xctx);
983 
992 };
993 
999 #define afw_adaptor_impl_index_cursor_release( \
1000  instance, \
1001  xctx \
1002 ) \
1003 (instance)->inf->release( \
1004  (instance), \
1005  (xctx) \
1006 )
1007 
1015 #define afw_adaptor_impl_index_cursor_get_next_object( \
1016  instance, \
1017  pool, \
1018  xctx \
1019 ) \
1020 (instance)->inf->get_next_object( \
1021  (instance), \
1022  (pool), \
1023  (xctx) \
1024 )
1025 
1033 #define afw_adaptor_impl_index_cursor_contains_object( \
1034  instance, \
1035  object, \
1036  xctx \
1037 ) \
1038 (instance)->inf->contains_object( \
1039  (instance), \
1040  (object), \
1041  (xctx) \
1042 )
1043 
1050 #define afw_adaptor_impl_index_cursor_inner_join( \
1051  instance, \
1052  cursor, \
1053  xctx \
1054 ) \
1055 (instance)->inf->inner_join( \
1056  (instance), \
1057  (cursor), \
1058  (xctx) \
1059 )
1060 
1067 #define afw_adaptor_impl_index_cursor_get_count( \
1068  instance, \
1069  count, \
1070  xctx \
1071 ) \
1072 (instance)->inf->get_count( \
1073  (instance), \
1074  (count), \
1075  (xctx) \
1076 )
1077 
1093  const afw_adaptor_key_value_inf_t *inf;
1094 };
1095 
1097 #define AFW_ADAPTOR_KEY_VALUE_INTERFACE_NAME \
1098 "afw_adaptor_key_value"
1099 
1101 typedef void
1103  const afw_adaptor_key_value_t * instance,
1104  const afw_utf8_t * namespace,
1105  const afw_memory_t * key,
1106  const afw_memory_t * value,
1107  afw_xctx_t * xctx);
1108 
1110 typedef void
1112  const afw_adaptor_key_value_t * instance,
1113  const afw_utf8_t * namespace,
1114  const afw_memory_t * key,
1115  const afw_memory_t * value,
1116  afw_boolean_t must_exist,
1117  afw_xctx_t * xctx);
1118 
1120 typedef void
1122  const afw_adaptor_key_value_t * instance,
1123  const afw_utf8_t * namespace,
1124  const afw_memory_t * key,
1125  const afw_memory_t * value,
1126  afw_boolean_t must_exist,
1127  afw_xctx_t * xctx);
1128 
1130 typedef const afw_memory_t *
1131 (*afw_adaptor_key_value_get_t)(
1132  const afw_adaptor_key_value_t * instance,
1133  const afw_utf8_t * namespace,
1134  const afw_memory_t * key,
1135  afw_xctx_t * xctx);
1136 
1144 };
1145 
1154 #define afw_adaptor_key_value_add( \
1155  instance, \
1156  namespace, \
1157  key, \
1158  value, \
1159  xctx \
1160 ) \
1161 (instance)->inf->add( \
1162  (instance), \
1163  (namespace), \
1164  (key), \
1165  (value), \
1166  (xctx) \
1167 )
1168 
1178 #define afw_adaptor_key_value_delete( \
1179  instance, \
1180  namespace, \
1181  key, \
1182  value, \
1183  must_exist, \
1184  xctx \
1185 ) \
1186 (instance)->inf->delete( \
1187  (instance), \
1188  (namespace), \
1189  (key), \
1190  (value), \
1191  (must_exist), \
1192  (xctx) \
1193 )
1194 
1205 #define afw_adaptor_key_value_replace( \
1206  instance, \
1207  namespace, \
1208  key, \
1209  value, \
1210  must_exist, \
1211  xctx \
1212 ) \
1213 (instance)->inf->replace( \
1214  (instance), \
1215  (namespace), \
1216  (key), \
1217  (value), \
1218  (must_exist), \
1219  (xctx) \
1220 )
1221 
1229 #define afw_adaptor_key_value_get( \
1230  instance, \
1231  namespace, \
1232  key, \
1233  xctx \
1234 ) \
1235 (instance)->inf->get( \
1236  (instance), \
1237  (namespace), \
1238  (key), \
1239  (xctx) \
1240 )
1241 
1257  const afw_adaptor_impl_index_inf_t *inf;
1258  const afw_object_t * indexDefinitions;
1259 };
1260 
1262 #define AFW_ADAPTOR_IMPL_INDEX_INTERFACE_NAME \
1263 "afw_adaptor_impl_index"
1264 
1266 typedef void
1268  const afw_adaptor_impl_index_t * instance,
1269  const afw_utf8_t * object_type_id,
1270  const afw_utf8_t * key,
1271  afw_boolean_t integer,
1272  afw_boolean_t unique,
1273  afw_boolean_t reverse,
1274  const afw_pool_t * pool,
1275  afw_xctx_t * xctx);
1276 
1278 typedef void
1280  const afw_adaptor_impl_index_t * instance,
1281  afw_xctx_t * xctx);
1282 
1284 typedef const afw_object_t *
1285 (*afw_adaptor_impl_index_get_index_definitions_t)(
1286  const afw_adaptor_impl_index_t * instance,
1287  afw_xctx_t * xctx);
1288 
1290 typedef void
1292  const afw_adaptor_impl_index_t * instance,
1293  const afw_object_t * indexDefinitions,
1294  afw_xctx_t * xctx);
1295 
1297 typedef afw_rc_t
1299  const afw_adaptor_impl_index_t * instance,
1300  const afw_utf8_t * object_type_id,
1301  const afw_utf8_t * object_id,
1302  const afw_utf8_t * key,
1303  const afw_utf8_t* value,
1304  afw_boolean_t unique,
1305  const afw_pool_t * pool,
1306  afw_xctx_t * xctx);
1307 
1309 typedef afw_rc_t
1311  const afw_adaptor_impl_index_t * instance,
1312  const afw_utf8_t * object_type_id,
1313  const afw_utf8_t * object_id,
1314  const afw_utf8_t * key,
1315  const afw_utf8_t* value,
1316  const afw_pool_t * pool,
1317  afw_xctx_t * xctx);
1318 
1320 typedef afw_rc_t
1322  const afw_adaptor_impl_index_t * instance,
1323  const afw_utf8_t * object_type_id,
1324  const afw_utf8_t * object_id,
1325  const afw_utf8_t * key,
1326  const afw_utf8_t* old_value,
1327  const afw_utf8_t* new_value,
1328  const afw_pool_t * pool,
1329  afw_xctx_t * xctx);
1330 
1332 typedef afw_rc_t
1334  const afw_adaptor_impl_index_t * instance,
1335  const afw_utf8_t * object_type_id,
1336  const afw_utf8_t * key,
1337  const afw_pool_t * pool,
1338  afw_xctx_t * xctx);
1339 
1342 (*afw_adaptor_impl_index_open_cursor_t)(
1343  const afw_adaptor_impl_index_t * instance,
1344  const afw_utf8_t * object_type_id,
1345  const afw_utf8_t * index_key,
1346  int operator,
1347  const afw_utf8_t * value,
1348  afw_boolean_t unique,
1349  const afw_pool_t * pool,
1350  afw_xctx_t * xctx);
1351 
1353 typedef const afw_adaptor_session_t *
1354 (*afw_adaptor_impl_index_get_session_t)(
1355  const afw_adaptor_impl_index_t * instance,
1356  afw_xctx_t * xctx);
1357 
1363  afw_adaptor_impl_index_get_index_definitions_t get_index_definitions;
1364  afw_adaptor_impl_index_update_index_definitions_t update_index_definitions;
1371 };
1372 
1387 #define afw_adaptor_impl_index_open( \
1388  instance, \
1389  object_type_id, \
1390  key, \
1391  integer, \
1392  unique, \
1393  reverse, \
1394  pool, \
1395  xctx \
1396 ) \
1397 (instance)->inf->open( \
1398  (instance), \
1399  (object_type_id), \
1400  (key), \
1401  (integer), \
1402  (unique), \
1403  (reverse), \
1404  (pool), \
1405  (xctx) \
1406 )
1407 
1413 #define afw_adaptor_impl_index_release( \
1414  instance, \
1415  xctx \
1416 ) \
1417 (instance)->inf->release( \
1418  (instance), \
1419  (xctx) \
1420 )
1421 
1427 #define afw_adaptor_impl_index_get_index_definitions( \
1428  instance, \
1429  xctx \
1430 ) \
1431 (instance)->inf->get_index_definitions( \
1432  (instance), \
1433  (xctx) \
1434 )
1435 
1443 #define afw_adaptor_impl_index_update_index_definitions( \
1444  instance, \
1445  indexDefinitions, \
1446  xctx \
1447 ) \
1448 (instance)->inf->update_index_definitions( \
1449  (instance), \
1450  (indexDefinitions), \
1451  (xctx) \
1452 )
1453 
1470 #define afw_adaptor_impl_index_add( \
1471  instance, \
1472  object_type_id, \
1473  object_id, \
1474  key, \
1475  value, \
1476  unique, \
1477  pool, \
1478  xctx \
1479 ) \
1480 (instance)->inf->add( \
1481  (instance), \
1482  (object_type_id), \
1483  (object_id), \
1484  (key), \
1485  (value), \
1486  (unique), \
1487  (pool), \
1488  (xctx) \
1489 )
1490 
1506 #define afw_adaptor_impl_index_delete( \
1507  instance, \
1508  object_type_id, \
1509  object_id, \
1510  key, \
1511  value, \
1512  pool, \
1513  xctx \
1514 ) \
1515 (instance)->inf->delete( \
1516  (instance), \
1517  (object_type_id), \
1518  (object_id), \
1519  (key), \
1520  (value), \
1521  (pool), \
1522  (xctx) \
1523 )
1524 
1542 #define afw_adaptor_impl_index_replace( \
1543  instance, \
1544  object_type_id, \
1545  object_id, \
1546  key, \
1547  old_value, \
1548  new_value, \
1549  pool, \
1550  xctx \
1551 ) \
1552 (instance)->inf->replace( \
1553  (instance), \
1554  (object_type_id), \
1555  (object_id), \
1556  (key), \
1557  (old_value), \
1558  (new_value), \
1559  (pool), \
1560  (xctx) \
1561 )
1562 
1573 #define afw_adaptor_impl_index_drop( \
1574  instance, \
1575  object_type_id, \
1576  key, \
1577  pool, \
1578  xctx \
1579 ) \
1580 (instance)->inf->drop( \
1581  (instance), \
1582  (object_type_id), \
1583  (key), \
1584  (pool), \
1585  (xctx) \
1586 )
1587 
1602 #define afw_adaptor_impl_index_open_cursor( \
1603  instance, \
1604  object_type_id, \
1605  index_key, \
1606  operator, \
1607  value, \
1608  unique, \
1609  pool, \
1610  xctx \
1611 ) \
1612 (instance)->inf->open_cursor( \
1613  (instance), \
1614  (object_type_id), \
1615  (index_key), \
1616  (operator), \
1617  (value), \
1618  (unique), \
1619  (pool), \
1620  (xctx) \
1621 )
1622 
1628 #define afw_adaptor_impl_index_get_session( \
1629  instance, \
1630  xctx \
1631 ) \
1632 (instance)->inf->get_session( \
1633  (instance), \
1634  (xctx) \
1635 )
1636 
1651  afw_utf8_t authorization_handler_type;
1652  const afw_utf8_t * description;
1653 };
1654 
1656 #define AFW_AUTHORIZATION_HANDLER_FACTORY_INTERFACE_NAME \
1657 "afw_authorization_handler_factory"
1658 
1661 (*afw_authorization_handler_factory_create_authorization_handler_cede_p_t)(
1662  const afw_authorization_handler_factory_t * instance,
1663  const afw_object_t * properties,
1664  const afw_pool_t * p,
1665  afw_xctx_t * xctx);
1666 
1671 };
1672 
1683 #define afw_authorization_handler_factory_create_authorization_handler_cede_p( \
1684  instance, \
1685  properties, \
1686  p, \
1687  xctx \
1688 ) \
1689 (instance)->inf->create_authorization_handler_cede_p( \
1690  (instance), \
1691  (properties), \
1692  (p), \
1693  (xctx) \
1694 )
1695 
1710  const afw_pool_t * p;
1711  afw_utf8_t authorization_handler_id;
1712  const afw_utf8_t * authorization_handler_type_id;
1713  const afw_utf8_t * service_id;
1714  const afw_object_t * properties;
1715  const afw_utf8_t * source_location;
1716  const afw_utf8_t * trace_flag_id;
1717  afw_size_t trace_flag_index;
1718  const afw_utf8_t * detail_flag_id;
1719  afw_size_t detail_flag_index;
1720  const afw_lock_rw_t * authorization_handler_lock_rw;
1721  afw_integer_t priority;
1722  afw_boolean_t allow_deny_override;
1723  afw_boolean_t allow_permit_override;
1724  afw_boolean_t required;
1725  const afw_authorization_handler_impl_t * impl;
1726 };
1727 
1729 #define AFW_AUTHORIZATION_HANDLER_INTERFACE_NAME \
1730 "afw_authorization_handler"
1731 
1733 typedef void
1735  const afw_authorization_handler_t * instance,
1736  afw_xctx_t * xctx);
1737 
1739 typedef const afw_value_t *
1740 (*afw_authorization_handler_check_t)(
1741  const afw_authorization_handler_t * instance,
1742  const afw_value_t * resource_id,
1743  const afw_value_t * object,
1744  const afw_value_t * action_id,
1745  const afw_pool_t * p,
1746  afw_xctx_t * xctx);
1747 
1753 };
1754 
1760 #define afw_authorization_handler_destroy( \
1761  instance, \
1762  xctx \
1763 ) \
1764 (instance)->inf->destroy( \
1765  (instance), \
1766  (xctx) \
1767 )
1768 
1779 #define afw_authorization_handler_check( \
1780  instance, \
1781  resource_id, \
1782  object, \
1783  action_id, \
1784  p, \
1785  xctx \
1786 ) \
1787 (instance)->inf->check( \
1788  (instance), \
1789  (resource_id), \
1790  (object), \
1791  (action_id), \
1792  (p), \
1793  (xctx) \
1794 )
1795 
1809  const afw_content_type_inf_t *inf;
1810  afw_utf8_t content_type_id;
1811  afw_size_t media_type_count;
1812  const afw_utf8_t * media_types;
1813 };
1814 
1816 #define AFW_CONTENT_TYPE_INTERFACE_NAME \
1817 "afw_content_type"
1818 
1820 typedef const afw_value_t *
1821 (*afw_content_type_raw_to_value_t)(
1822  const afw_content_type_t * instance,
1823  const afw_memory_t * raw,
1824  const afw_utf8_t * source_location,
1825  const afw_pool_t * p,
1826  afw_xctx_t * xctx);
1827 
1829 typedef const afw_object_t *
1830 (*afw_content_type_raw_to_object_t)(
1831  const afw_content_type_t * instance,
1832  const afw_memory_t * raw,
1833  const afw_utf8_t * source_location,
1834  const afw_utf8_t * adaptor_id,
1835  const afw_utf8_t * object_type_id,
1836  const afw_utf8_t * object_id,
1837  afw_boolean_t cede_p,
1838  const afw_pool_t * p,
1839  afw_xctx_t * xctx);
1840 
1842 typedef void
1844  const afw_content_type_t * instance,
1845  const afw_value_t * value,
1846  const afw_object_options_t * options,
1847  void * context,
1848  afw_write_cb_t callback,
1849  const afw_pool_t * p,
1850  afw_xctx_t * xctx);
1851 
1854 (*afw_content_type_create_object_list_writer_t)(
1855  const afw_content_type_t * instance,
1856  const afw_object_options_t * options,
1857  void * context,
1858  afw_write_cb_t callback,
1859  const afw_pool_t * p,
1860  afw_xctx_t * xctx);
1861 
1865  afw_content_type_raw_to_value_t raw_to_value;
1866  afw_content_type_raw_to_object_t raw_to_object;
1867  afw_content_type_write_value_t write_value;
1868  afw_content_type_create_object_list_writer_t create_object_list_writer;
1869 };
1870 
1879 #define afw_content_type_raw_to_value( \
1880  instance, \
1881  raw, \
1882  source_location, \
1883  p, \
1884  xctx \
1885 ) \
1886 (instance)->inf->raw_to_value( \
1887  (instance), \
1888  (raw), \
1889  (source_location), \
1890  (p), \
1891  (xctx) \
1892 )
1893 
1907 #define afw_content_type_raw_to_object( \
1908  instance, \
1909  raw, \
1910  source_location, \
1911  adaptor_id, \
1912  object_type_id, \
1913  object_id, \
1914  cede_p, \
1915  p, \
1916  xctx \
1917 ) \
1918 (instance)->inf->raw_to_object( \
1919  (instance), \
1920  (raw), \
1921  (source_location), \
1922  (adaptor_id), \
1923  (object_type_id), \
1924  (object_id), \
1925  (cede_p), \
1926  (p), \
1927  (xctx) \
1928 )
1929 
1947 #define afw_content_type_write_value( \
1948  instance, \
1949  value, \
1950  options, \
1951  context, \
1952  callback, \
1953  p, \
1954  xctx \
1955 ) \
1956 (instance)->inf->write_value( \
1957  (instance), \
1958  (value), \
1959  (options), \
1960  (context), \
1961  (callback), \
1962  (p), \
1963  (xctx) \
1964 )
1965 
1982 #define afw_content_type_create_object_list_writer( \
1983  instance, \
1984  options, \
1985  context, \
1986  callback, \
1987  p, \
1988  xctx \
1989 ) \
1990 (instance)->inf->create_object_list_writer( \
1991  (instance), \
1992  (options), \
1993  (context), \
1994  (callback), \
1995  (p), \
1996  (xctx) \
1997 )
1998 
2012 };
2013 
2015 #define AFW_CONTENT_TYPE_OBJECT_LIST_WRITER_INTERFACE_NAME \
2016 "afw_content_type_object_list_writer"
2017 
2019 typedef void
2021  const afw_content_type_object_list_writer_t * instance,
2022  afw_xctx_t * xctx);
2023 
2025 typedef void
2027  const afw_content_type_object_list_writer_t * instance,
2028  const afw_object_t * object,
2029  const afw_pool_t * p,
2030  afw_xctx_t * xctx);
2031 
2037 };
2038 
2044 #define afw_content_type_object_list_writer_release( \
2045  instance, \
2046  xctx \
2047 ) \
2048 (instance)->inf->release( \
2049  (instance), \
2050  (xctx) \
2051 )
2052 
2061 #define afw_content_type_object_list_writer_write_object( \
2062  instance, \
2063  object, \
2064  p, \
2065  xctx \
2066 ) \
2067 (instance)->inf->write_object( \
2068  (instance), \
2069  (object), \
2070  (p), \
2071  (xctx) \
2072 )
2073 
2087  const afw_data_type_inf_t *inf;
2088  const afw_object_t * object;
2089  afw_utf8_t data_type_id;
2090  afw_utf8_t brief;
2091  afw_utf8_t description;
2092  afw_utf8_t data_type_parameter_type;
2093  int data_type_number;
2094  afw_utf8_t ldapOid;
2095  afw_utf8_t jsonPrimitive;
2096  afw_utf8_t jsonSchemaStringFormat;
2097  afw_utf8_t cType;
2098  afw_size_t c_type_size;
2099  const afw_list_t * empty_list;
2100  const afw_value_t * empty_list_value;
2101  const afw_value_inf_t * evaluated_value_inf;
2102  afw_compile_type_t compile_type;
2103  afw_boolean_t json_implies_data_type;
2104  afw_boolean_t evaluated;
2105  afw_boolean_t directReturn;
2106  afw_boolean_t relationalCompares;
2107  afw_boolean_t scalar;
2108 };
2109 
2111 #define AFW_DATA_TYPE_INTERFACE_NAME \
2112 "afw_data_type"
2113 
2115 typedef const afw_utf8_t *
2116 (*afw_data_type_internal_to_utf8_t)(
2117  const afw_data_type_t * instance,
2118  const void * from_internal,
2119  const afw_pool_t * p,
2120  afw_xctx_t * xctx);
2121 
2123 typedef void
2125  const afw_data_type_t * instance,
2126  void * to_internal,
2127  const afw_utf8_t * from_utf8,
2128  const afw_pool_t * p,
2129  afw_xctx_t * xctx);
2130 
2132 typedef int
2134  const afw_data_type_t * instance,
2135  const void * internal1,
2136  const void * internal2,
2137  afw_xctx_t * xctx);
2138 
2140 typedef void
2142  const afw_data_type_t * instance,
2143  void * to_internal,
2144  const void * from_internal,
2145  const afw_data_type_t * to_data_type,
2146  const afw_pool_t * p,
2147  afw_xctx_t * xctx);
2148 
2150 typedef void
2152  const afw_data_type_t * instance,
2153  void * to_internal,
2154  const void * from_internal,
2155  const afw_pool_t * p,
2156  afw_xctx_t * xctx);
2157 
2159 typedef void
2161  const afw_data_type_t * instance,
2162  const afw_writer_t * writer,
2163  const afw_value_t * value,
2164  afw_xctx_t * xctx);
2165 
2167 typedef void
2169  const afw_data_type_t * instance,
2170  const afw_writer_t * writer,
2171  const void * from_internal,
2172  afw_xctx_t * xctx);
2173 
2177  afw_data_type_internal_to_utf8_t internal_to_utf8;
2178  afw_data_type_utf8_to_internal_t utf8_to_internal;
2179  afw_data_type_compare_internal_t compare_internal;
2180  afw_data_type_convert_internal_t convert_internal;
2181  afw_data_type_clone_internal_t clone_internal;
2182  afw_data_type_value_compiler_listing_t value_compiler_listing;
2183  afw_data_type_write_as_expression_t write_as_expression;
2184 };
2185 
2194 #define afw_data_type_internal_to_utf8( \
2195  instance, \
2196  from_internal, \
2197  p, \
2198  xctx \
2199 ) \
2200 (instance)->inf->internal_to_utf8( \
2201  (instance), \
2202  (from_internal), \
2203  (p), \
2204  (xctx) \
2205 )
2206 
2216 #define afw_data_type_utf8_to_internal( \
2217  instance, \
2218  to_internal, \
2219  from_utf8, \
2220  p, \
2221  xctx \
2222 ) \
2223 (instance)->inf->utf8_to_internal( \
2224  (instance), \
2225  (to_internal), \
2226  (from_utf8), \
2227  (p), \
2228  (xctx) \
2229 )
2230 
2238 #define afw_data_type_compare_internal( \
2239  instance, \
2240  internal1, \
2241  internal2, \
2242  xctx \
2243 ) \
2244 (instance)->inf->compare_internal( \
2245  (instance), \
2246  (internal1), \
2247  (internal2), \
2248  (xctx) \
2249 )
2250 
2262 #define afw_data_type_convert_internal( \
2263  instance, \
2264  to_internal, \
2265  from_internal, \
2266  to_data_type, \
2267  p, \
2268  xctx \
2269 ) \
2270 (instance)->inf->convert_internal( \
2271  (instance), \
2272  (to_internal), \
2273  (from_internal), \
2274  (to_data_type), \
2275  (p), \
2276  (xctx) \
2277 )
2278 
2289 #define afw_data_type_clone_internal( \
2290  instance, \
2291  to_internal, \
2292  from_internal, \
2293  p, \
2294  xctx \
2295 ) \
2296 (instance)->inf->clone_internal( \
2297  (instance), \
2298  (to_internal), \
2299  (from_internal), \
2300  (p), \
2301  (xctx) \
2302 )
2303 
2311 #define afw_data_type_value_compiler_listing( \
2312  instance, \
2313  writer, \
2314  value, \
2315  xctx \
2316 ) \
2317 (instance)->inf->value_compiler_listing( \
2318  (instance), \
2319  (writer), \
2320  (value), \
2321  (xctx) \
2322 )
2323 
2331 #define afw_data_type_write_as_expression( \
2332  instance, \
2333  writer, \
2334  from_internal, \
2335  xctx \
2336 ) \
2337 (instance)->inf->write_as_expression( \
2338  (instance), \
2339  (writer), \
2340  (from_internal), \
2341  (xctx) \
2342 )
2343 
2359  const afw_list_setter_inf_t *inf;
2360  const afw_list_t * list;
2361 };
2362 
2364 #define AFW_LIST_SETTER_INTERFACE_NAME \
2365 "afw_list_setter"
2366 
2368 typedef void
2370  const afw_list_setter_t * instance,
2371  afw_xctx_t * xctx);
2372 
2374 typedef const afw_data_type_t *
2375 (*afw_list_setter_determine_data_type_and_set_immutable_t)(
2376  const afw_list_setter_t * instance,
2377  afw_xctx_t * xctx);
2378 
2380 typedef void
2382  const afw_list_setter_t * instance,
2383  const afw_data_type_t * data_type,
2384  const void * internal,
2385  afw_xctx_t * xctx);
2386 
2388 typedef void
2390  const afw_list_setter_t * instance,
2391  const afw_value_t * value,
2392  afw_xctx_t * xctx);
2393 
2395 typedef void
2397  const afw_list_setter_t * instance,
2398  const afw_data_type_t * data_type,
2399  const void * internal,
2400  afw_size_t index,
2401  afw_xctx_t * xctx);
2402 
2404 typedef void
2406  const afw_list_setter_t * instance,
2407  const afw_value_t * value,
2408  afw_size_t index,
2409  afw_xctx_t * xctx);
2410 
2412 typedef void
2414  const afw_list_setter_t * instance,
2415  afw_xctx_t * xctx);
2416 
2418 typedef void
2420  const afw_list_setter_t * instance,
2421  const afw_data_type_t * data_type,
2422  const void * internal,
2423  afw_xctx_t * xctx);
2424 
2426 typedef void
2428  const afw_list_setter_t * instance,
2429  const afw_value_t * value,
2430  afw_xctx_t * xctx);
2431 
2433 typedef void
2435  const afw_list_setter_t * instance,
2436  afw_size_t index,
2437  const afw_value_t * value,
2438  afw_xctx_t * xctx);
2439 
2443  afw_list_setter_set_immutable_t set_immutable;
2444  afw_list_setter_determine_data_type_and_set_immutable_t determine_data_type_and_set_immutable;
2445  afw_list_setter_add_internal_t add_internal;
2446  afw_list_setter_add_value_t add_value;
2447  afw_list_setter_insert_internal_t insert_internal;
2448  afw_list_setter_insert_value_t insert_value;
2449  afw_list_setter_remove_all_values_t remove_all_values;
2450  afw_list_setter_remove_internal_t remove_internal;
2451  afw_list_setter_remove_value_t remove_value;
2452  afw_list_setter_set_value_by_index_t set_value_by_index;
2453 };
2454 
2460 #define afw_list_setter_set_immutable( \
2461  instance, \
2462  xctx \
2463 ) \
2464 (instance)->inf->set_immutable( \
2465  (instance), \
2466  (xctx) \
2467 )
2468 
2475 #define afw_list_setter_determine_data_type_and_set_immutable( \
2476  instance, \
2477  xctx \
2478 ) \
2479 (instance)->inf->determine_data_type_and_set_immutable( \
2480  (instance), \
2481  (xctx) \
2482 )
2483 
2491 #define afw_list_setter_add_internal( \
2492  instance, \
2493  data_type, \
2494  internal, \
2495  xctx \
2496 ) \
2497 (instance)->inf->add_internal( \
2498  (instance), \
2499  (data_type), \
2500  (internal), \
2501  (xctx) \
2502 )
2503 
2510 #define afw_list_setter_add_value( \
2511  instance, \
2512  value, \
2513  xctx \
2514 ) \
2515 (instance)->inf->add_value( \
2516  (instance), \
2517  (value), \
2518  (xctx) \
2519 )
2520 
2529 #define afw_list_setter_insert_internal( \
2530  instance, \
2531  data_type, \
2532  internal, \
2533  index, \
2534  xctx \
2535 ) \
2536 (instance)->inf->insert_internal( \
2537  (instance), \
2538  (data_type), \
2539  (internal), \
2540  (index), \
2541  (xctx) \
2542 )
2543 
2551 #define afw_list_setter_insert_value( \
2552  instance, \
2553  value, \
2554  index, \
2555  xctx \
2556 ) \
2557 (instance)->inf->insert_value( \
2558  (instance), \
2559  (value), \
2560  (index), \
2561  (xctx) \
2562 )
2563 
2569 #define afw_list_setter_remove_all_values( \
2570  instance, \
2571  xctx \
2572 ) \
2573 (instance)->inf->remove_all_values( \
2574  (instance), \
2575  (xctx) \
2576 )
2577 
2585 #define afw_list_setter_remove_internal( \
2586  instance, \
2587  data_type, \
2588  internal, \
2589  xctx \
2590 ) \
2591 (instance)->inf->remove_internal( \
2592  (instance), \
2593  (data_type), \
2594  (internal), \
2595  (xctx) \
2596 )
2597 
2604 #define afw_list_setter_remove_value( \
2605  instance, \
2606  value, \
2607  xctx \
2608 ) \
2609 (instance)->inf->remove_value( \
2610  (instance), \
2611  (value), \
2612  (xctx) \
2613 )
2614 
2622 #define afw_list_setter_set_value_by_index( \
2623  instance, \
2624  index, \
2625  value, \
2626  xctx \
2627 ) \
2628 (instance)->inf->set_value_by_index( \
2629  (instance), \
2630  (index), \
2631  (value), \
2632  (xctx) \
2633 )
2634 
2649 struct afw_list_s {
2650  const afw_list_inf_t *inf;
2651 };
2652 
2654 #define AFW_LIST_INTERFACE_NAME \
2655 "afw_list"
2656 
2658 typedef void
2660  const afw_list_t * instance,
2661  afw_xctx_t * xctx);
2662 
2664 typedef afw_size_t
2666  const afw_list_t * instance,
2667  afw_xctx_t * xctx);
2668 
2670 typedef const afw_data_type_t *
2671 (*afw_list_get_data_type_t)(
2672  const afw_list_t * instance,
2673  afw_xctx_t * xctx);
2674 
2676 typedef const afw_value_t *
2677 (*afw_list_get_entry_meta_t)(
2678  const afw_list_t * instance,
2679  afw_integer_t index,
2680  const afw_pool_t * p,
2681  afw_xctx_t * xctx);
2682 
2686  const afw_list_t * instance,
2687  afw_integer_t index,
2688  const afw_data_type_t * * data_type,
2689  const void * * internal,
2690  afw_xctx_t * xctx);
2691 
2693 typedef const afw_value_t *
2694 (*afw_list_get_entry_value_t)(
2695  const afw_list_t * instance,
2696  afw_integer_t index,
2697  const afw_pool_t * p,
2698  afw_xctx_t * xctx);
2699 
2701 typedef const afw_value_t *
2702 (*afw_list_get_next_entry_meta_t)(
2703  const afw_list_t * instance,
2704  const afw_iterator_t * * iterator,
2705  const afw_pool_t * p,
2706  afw_xctx_t * xctx);
2707 
2711  const afw_list_t * instance,
2712  const afw_iterator_t * * iterator,
2713  const afw_data_type_t * * data_type,
2714  const void * * internal,
2715  afw_xctx_t * xctx);
2716 
2718 typedef const afw_value_t *
2719 (*afw_list_get_next_value_t)(
2720  const afw_list_t * instance,
2721  const afw_iterator_t * * iterator,
2722  const afw_pool_t * p,
2723  afw_xctx_t * xctx);
2724 
2726 typedef const afw_list_setter_t *
2727 (*afw_list_get_setter_t)(
2728  const afw_list_t * instance,
2729  afw_xctx_t * xctx);
2730 
2734  afw_list_release_t release;
2735  afw_list_get_count_t get_count;
2736  afw_list_get_data_type_t get_data_type;
2737  afw_list_get_entry_meta_t get_entry_meta;
2738  afw_list_get_entry_internal_t get_entry_internal;
2739  afw_list_get_entry_value_t get_entry_value;
2740  afw_list_get_next_entry_meta_t get_next_entry_meta;
2741  afw_list_get_next_internal_t get_next_internal;
2742  afw_list_get_next_value_t get_next_value;
2743  afw_list_get_setter_t get_setter;
2744 };
2745 
2751 #define afw_list_release( \
2752  instance, \
2753  xctx \
2754 ) \
2755 (instance)->inf->release( \
2756  (instance), \
2757  (xctx) \
2758 )
2759 
2765 #define afw_list_get_count( \
2766  instance, \
2767  xctx \
2768 ) \
2769 (instance)->inf->get_count( \
2770  (instance), \
2771  (xctx) \
2772 )
2773 
2779 #define afw_list_get_data_type( \
2780  instance, \
2781  xctx \
2782 ) \
2783 (instance)->inf->get_data_type( \
2784  (instance), \
2785  (xctx) \
2786 )
2787 
2795 #define afw_list_get_entry_meta( \
2796  instance, \
2797  index, \
2798  p, \
2799  xctx \
2800 ) \
2801 (instance)->inf->get_entry_meta( \
2802  (instance), \
2803  (index), \
2804  (p), \
2805  (xctx) \
2806 )
2807 
2818 #define afw_list_get_entry_internal( \
2819  instance, \
2820  index, \
2821  data_type, \
2822  internal, \
2823  xctx \
2824 ) \
2825 (instance)->inf->get_entry_internal( \
2826  (instance), \
2827  (index), \
2828  (data_type), \
2829  (internal), \
2830  (xctx) \
2831 )
2832 
2840 #define afw_list_get_entry_value( \
2841  instance, \
2842  index, \
2843  p, \
2844  xctx \
2845 ) \
2846 (instance)->inf->get_entry_value( \
2847  (instance), \
2848  (index), \
2849  (p), \
2850  (xctx) \
2851 )
2852 
2860 #define afw_list_get_next_entry_meta( \
2861  instance, \
2862  iterator, \
2863  p, \
2864  xctx \
2865 ) \
2866 (instance)->inf->get_next_entry_meta( \
2867  (instance), \
2868  (iterator), \
2869  (p), \
2870  (xctx) \
2871 )
2872 
2882 #define afw_list_get_next_internal( \
2883  instance, \
2884  iterator, \
2885  data_type, \
2886  internal, \
2887  xctx \
2888 ) \
2889 (instance)->inf->get_next_internal( \
2890  (instance), \
2891  (iterator), \
2892  (data_type), \
2893  (internal), \
2894  (xctx) \
2895 )
2896 
2904 #define afw_list_get_next_value( \
2905  instance, \
2906  iterator, \
2907  p, \
2908  xctx \
2909 ) \
2910 (instance)->inf->get_next_value( \
2911  (instance), \
2912  (iterator), \
2913  (p), \
2914  (xctx) \
2915 )
2916 
2922 #define afw_list_get_setter( \
2923  instance, \
2924  xctx \
2925 ) \
2926 (instance)->inf->get_setter( \
2927  (instance), \
2928  (xctx) \
2929 )
2930 
2946  const afw_log_factory_inf_t *inf;
2947  afw_utf8_t log_type;
2948  const afw_utf8_t * description;
2949 };
2950 
2952 #define AFW_LOG_FACTORY_INTERFACE_NAME \
2953 "afw_log_factory"
2954 
2956 typedef const afw_log_t *
2957 (*afw_log_factory_create_log_cede_p_t)(
2958  const afw_log_factory_t * instance,
2959  const afw_object_t * properties,
2960  const afw_pool_t * p,
2961  afw_xctx_t * xctx);
2962 
2966  afw_log_factory_create_log_cede_p_t create_log_cede_p;
2967 };
2968 
2977 #define afw_log_factory_create_log_cede_p( \
2978  instance, \
2979  properties, \
2980  p, \
2981  xctx \
2982 ) \
2983 (instance)->inf->create_log_cede_p( \
2984  (instance), \
2985  (properties), \
2986  (p), \
2987  (xctx) \
2988 )
2989 
3004 struct afw_log_s {
3005  const afw_log_inf_t *inf;
3006  const afw_pool_t * p;
3007  afw_utf8_t log_id;
3008  const afw_utf8_t * service_id;
3009  const afw_object_t * properties;
3010  const afw_utf8_t * source_location;
3011  const afw_log_impl_t * impl;
3012 };
3013 
3015 #define AFW_LOG_INTERFACE_NAME \
3016 "afw_log"
3017 
3019 typedef void
3021  const afw_log_t * instance,
3022  afw_xctx_t * xctx);
3023 
3025 typedef void
3027  const afw_log_t * instance,
3029  afw_xctx_t * xctx);
3030 
3032 typedef void
3033 (*afw_log_write_t)(
3034  const afw_log_t * instance,
3035  afw_log_priority_t priority,
3036  const afw_utf8_z_t * source_z,
3037  const afw_utf8_t * message,
3038  afw_xctx_t * xctx);
3039 
3043  afw_log_destroy_t destroy;
3044  afw_log_set_own_mask_t set_own_mask;
3045  afw_log_write_t write;
3046 };
3047 
3053 #define afw_log_destroy( \
3054  instance, \
3055  xctx \
3056 ) \
3057 (instance)->inf->destroy( \
3058  (instance), \
3059  (xctx) \
3060 )
3061 
3068 #define afw_log_set_own_mask( \
3069  instance, \
3070  mask, \
3071  xctx \
3072 ) \
3073 (instance)->inf->set_own_mask( \
3074  (instance), \
3075  (mask), \
3076  (xctx) \
3077 )
3078 
3087 #define afw_log_write( \
3088  instance, \
3089  priority, \
3090  source_z, \
3091  message, \
3092  xctx \
3093 ) \
3094 (instance)->inf->write( \
3095  (instance), \
3096  (priority), \
3097  (source_z), \
3098  (message), \
3099  (xctx) \
3100 )
3101 
3120  const afw_object_setter_inf_t *inf;
3121  const afw_object_t * object;
3122 };
3123 
3125 #define AFW_OBJECT_SETTER_INTERFACE_NAME \
3126 "afw_object_setter"
3127 
3129 typedef void
3131  const afw_object_setter_t * instance,
3132  afw_xctx_t * xctx);
3133 
3135 typedef void
3137  const afw_object_setter_t * instance,
3138  const afw_utf8_t * property_name,
3139  const afw_value_t * value,
3140  afw_xctx_t * xctx);
3141 
3145  afw_object_setter_set_immutable_t set_immutable;
3146  afw_object_setter_set_property_t set_property;
3147 };
3148 
3154 #define afw_object_setter_set_immutable( \
3155  instance, \
3156  xctx \
3157 ) \
3158 (instance)->inf->set_immutable( \
3159  (instance), \
3160  (xctx) \
3161 )
3162 
3170 #define afw_object_setter_set_property( \
3171  instance, \
3172  property_name, \
3173  value, \
3174  xctx \
3175 ) \
3176 (instance)->inf->set_property( \
3177  (instance), \
3178  (property_name), \
3179  (value), \
3180  (xctx) \
3181 )
3182 
3198  const afw_object_inf_t *inf;
3199  const afw_pool_t * p;
3200  afw_object_meta_t meta;
3201 };
3202 
3204 #define AFW_OBJECT_INTERFACE_NAME \
3205 "afw_object"
3206 
3208 typedef void
3210  const afw_object_t * instance,
3211  afw_xctx_t * xctx);
3212 
3214 typedef void
3216  const afw_object_t * instance,
3217  afw_xctx_t * xctx);
3218 
3220 typedef afw_size_t
3222  const afw_object_t * instance,
3223  afw_xctx_t * xctx);
3224 
3226 typedef const afw_value_t *
3227 (*afw_object_get_meta_t)(
3228  const afw_object_t * instance,
3229  const afw_pool_t * p,
3230  afw_xctx_t * xctx);
3231 
3233 typedef const afw_value_t *
3234 (*afw_object_get_property_t)(
3235  const afw_object_t * instance,
3236  const afw_utf8_t * property_name,
3237  afw_xctx_t * xctx);
3238 
3240 typedef const afw_value_t *
3241 (*afw_object_get_property_meta_t)(
3242  const afw_object_t * instance,
3243  const afw_utf8_t * property_name,
3244  const afw_pool_t * p,
3245  afw_xctx_t * xctx);
3246 
3248 typedef const afw_value_t *
3249 (*afw_object_get_next_property_t)(
3250  const afw_object_t * instance,
3251  const afw_iterator_t * * iterator,
3252  const afw_utf8_t * * property_name,
3253  afw_xctx_t * xctx);
3254 
3256 typedef const afw_value_t *
3257 (*afw_object_get_next_property_meta_t)(
3258  const afw_object_t * instance,
3259  const afw_iterator_t * * iterator,
3260  const afw_utf8_t * * property_name,
3261  const afw_pool_t * p,
3262  afw_xctx_t * xctx);
3263 
3267  const afw_object_t * instance,
3268  const afw_utf8_t * property_name,
3269  afw_xctx_t * xctx);
3270 
3272 typedef const afw_object_setter_t *
3273 (*afw_object_get_setter_t)(
3274  const afw_object_t * instance,
3275  afw_xctx_t * xctx);
3276 
3280  afw_object_release_t release;
3281  afw_object_add_reference_t add_reference;
3282  afw_object_get_count_t get_count;
3283  afw_object_get_meta_t get_meta;
3284  afw_object_get_property_t get_property;
3285  afw_object_get_property_meta_t get_property_meta;
3286  afw_object_get_next_property_t get_next_property;
3287  afw_object_get_next_property_meta_t get_next_property_meta;
3288  afw_object_has_property_t has_property;
3289  afw_object_get_setter_t get_setter;
3290 };
3291 
3297 #define afw_object_release( \
3298  instance, \
3299  xctx \
3300 ) \
3301 (instance)->inf->release( \
3302  (instance), \
3303  (xctx) \
3304 )
3305 
3311 #define afw_object_add_reference( \
3312  instance, \
3313  xctx \
3314 ) \
3315 (instance)->inf->add_reference( \
3316  (instance), \
3317  (xctx) \
3318 )
3319 
3325 #define afw_object_get_count( \
3326  instance, \
3327  xctx \
3328 ) \
3329 (instance)->inf->get_count( \
3330  (instance), \
3331  (xctx) \
3332 )
3333 
3340 #define afw_object_get_meta( \
3341  instance, \
3342  p, \
3343  xctx \
3344 ) \
3345 (instance)->inf->get_meta( \
3346  (instance), \
3347  (p), \
3348  (xctx) \
3349 )
3350 
3357 #define afw_object_get_property( \
3358  instance, \
3359  property_name, \
3360  xctx \
3361 ) \
3362 (instance)->inf->get_property( \
3363  (instance), \
3364  (property_name), \
3365  (xctx) \
3366 )
3367 
3375 #define afw_object_get_property_meta( \
3376  instance, \
3377  property_name, \
3378  p, \
3379  xctx \
3380 ) \
3381 (instance)->inf->get_property_meta( \
3382  (instance), \
3383  (property_name), \
3384  (p), \
3385  (xctx) \
3386 )
3387 
3396 #define afw_object_get_next_property( \
3397  instance, \
3398  iterator, \
3399  property_name, \
3400  xctx \
3401 ) \
3402 (instance)->inf->get_next_property( \
3403  (instance), \
3404  (iterator), \
3405  (property_name), \
3406  (xctx) \
3407 )
3408 
3418 #define afw_object_get_next_property_meta( \
3419  instance, \
3420  iterator, \
3421  property_name, \
3422  p, \
3423  xctx \
3424 ) \
3425 (instance)->inf->get_next_property_meta( \
3426  (instance), \
3427  (iterator), \
3428  (property_name), \
3429  (p), \
3430  (xctx) \
3431 )
3432 
3439 #define afw_object_has_property( \
3440  instance, \
3441  property_name, \
3442  xctx \
3443 ) \
3444 (instance)->inf->has_property( \
3445  (instance), \
3446  (property_name), \
3447  (xctx) \
3448 )
3449 
3455 #define afw_object_get_setter( \
3456  instance, \
3457  xctx \
3458 ) \
3459 (instance)->inf->get_setter( \
3460  (instance), \
3461  (xctx) \
3462 )
3463 
3477  const afw_server_inf_t *inf;
3478  afw_xctx_t * xctx;
3479  const afw_object_t * properties;
3480  const afw_utf8_t * afw_compiled_version;
3481  const afw_utf8_t * afw_version;
3482  AFW_ATOMIC afw_integer_t concurrent;
3483  AFW_ATOMIC afw_integer_t max_concurrent;
3484  AFW_ATOMIC afw_integer_t request_count;
3485  const afw_utf8_t * server_type;
3486  const afw_utf8_t * server_version;
3487  const afw_dateTime_t * start_time;
3488  AFW_ATOMIC afw_integer_t thread_count;
3489  AFW_ATOMIC afw_integer_t unhandled_errors;
3490 };
3491 
3493 #define AFW_SERVER_INTERFACE_NAME \
3494 "afw_server"
3495 
3497 typedef void
3499  const afw_server_t * instance,
3500  afw_xctx_t * xctx);
3501 
3503 typedef void
3504 (*afw_server_run_t)(
3505  const afw_server_t * instance,
3506  const afw_request_handler_t * handler,
3507  afw_xctx_t * xctx);
3508 
3512  afw_server_release_t release;
3513  afw_server_run_t run;
3514 };
3515 
3521 #define afw_server_release( \
3522  instance, \
3523  xctx \
3524 ) \
3525 (instance)->inf->release( \
3526  (instance), \
3527  (xctx) \
3528 )
3529 
3536 #define afw_server_run( \
3537  instance, \
3538  handler, \
3539  xctx \
3540 ) \
3541 (instance)->inf->run( \
3542  (instance), \
3543  (handler), \
3544  (xctx) \
3545 )
3546 
3561  const afw_service_type_inf_t *inf;
3562  afw_utf8_t service_type_id;
3563  const afw_utf8_t * title;
3564  const afw_utf8_t * description;
3565  const afw_environment_conf_type_t * conf_type;
3566  const afw_object_t * conf_type_object;
3567 };
3568 
3570 #define AFW_SERVICE_TYPE_INTERFACE_NAME \
3571 "afw_service_type"
3572 
3576  const afw_service_type_t * instance,
3577  const afw_utf8_t * id,
3578  afw_xctx_t * xctx);
3579 
3581 typedef void
3583  const afw_service_type_t * instance,
3584  const afw_object_t * properties,
3585  const afw_pool_t * p,
3586  afw_xctx_t * xctx);
3587 
3589 typedef void
3591  const afw_service_type_t * instance,
3592  const afw_utf8_t * id,
3593  afw_xctx_t * xctx);
3594 
3596 typedef void
3598  const afw_service_type_t * instance,
3599  const afw_object_t * properties,
3600  const afw_pool_t * p,
3601  afw_xctx_t * xctx);
3602 
3606  afw_service_type_related_instance_count_t related_instance_count;
3607  afw_service_type_start_cede_p_t start_cede_p;
3609  afw_service_type_restart_cede_p_t restart_cede_p;
3610 };
3611 
3618 #define afw_service_type_related_instance_count( \
3619  instance, \
3620  id, \
3621  xctx \
3622 ) \
3623 (instance)->inf->related_instance_count( \
3624  (instance), \
3625  (id), \
3626  (xctx) \
3627 )
3628 
3640 #define afw_service_type_start_cede_p( \
3641  instance, \
3642  properties, \
3643  p, \
3644  xctx \
3645 ) \
3646 (instance)->inf->start_cede_p( \
3647  (instance), \
3648  (properties), \
3649  (p), \
3650  (xctx) \
3651 )
3652 
3659 #define afw_service_type_stop( \
3660  instance, \
3661  id, \
3662  xctx \
3663 ) \
3664 (instance)->inf->stop( \
3665  (instance), \
3666  (id), \
3667  (xctx) \
3668 )
3669 
3681 #define afw_service_type_restart_cede_p( \
3682  instance, \
3683  properties, \
3684  p, \
3685  xctx \
3686 ) \
3687 (instance)->inf->restart_cede_p( \
3688  (instance), \
3689  (properties), \
3690  (p), \
3691  (xctx) \
3692 )
3693 
3710  const afw_pool_t * p;
3711 };
3712 
3714 #define AFW_OBJECT_ASSOCIATIVE_ARRAY_INTERFACE_NAME \
3715 "afw_object_associative_array"
3716 
3718 typedef void
3720  const afw_object_associative_array_t * instance,
3721  afw_xctx_t * xctx);
3722 
3724 typedef void
3726  const afw_object_associative_array_t * instance,
3727  afw_xctx_t * xctx);
3728 
3730 typedef const afw_object_t *
3731 (*afw_object_associative_array_get_t)(
3732  const afw_object_associative_array_t * instance,
3733  const afw_utf8_t * key,
3734  afw_xctx_t * xctx);
3735 
3737 typedef const afw_object_t *
3738 (*afw_object_associative_array_get_reference_t)(
3739  const afw_object_associative_array_t * instance,
3740  const afw_utf8_t * key,
3741  afw_xctx_t * xctx);
3742 
3744 typedef void
3746  const afw_object_associative_array_t * instance,
3747  void * context,
3748  afw_object_cb_t cb,
3749  afw_xctx_t * xctx);
3750 
3752 typedef void
3754  const afw_object_associative_array_t * instance,
3755  const afw_utf8_t * key,
3756  const afw_object_t * object,
3757  afw_xctx_t * xctx);
3758 
3768 };
3769 
3775 #define afw_object_associative_array_release( \
3776  instance, \
3777  xctx \
3778 ) \
3779 (instance)->inf->release( \
3780  (instance), \
3781  (xctx) \
3782 )
3783 
3789 #define afw_object_associative_array_add_reference( \
3790  instance, \
3791  xctx \
3792 ) \
3793 (instance)->inf->add_reference( \
3794  (instance), \
3795  (xctx) \
3796 )
3797 
3804 #define afw_object_associative_array_get( \
3805  instance, \
3806  key, \
3807  xctx \
3808 ) \
3809 (instance)->inf->get( \
3810  (instance), \
3811  (key), \
3812  (xctx) \
3813 )
3814 
3821 #define afw_object_associative_array_get_reference( \
3822  instance, \
3823  key, \
3824  xctx \
3825 ) \
3826 (instance)->inf->get_reference( \
3827  (instance), \
3828  (key), \
3829  (xctx) \
3830 )
3831 
3839 #define afw_object_associative_array_for_each( \
3840  instance, \
3841  context, \
3842  cb, \
3843  xctx \
3844 ) \
3845 (instance)->inf->for_each( \
3846  (instance), \
3847  (context), \
3848  (cb), \
3849  (xctx) \
3850 )
3851 
3860 #define afw_object_associative_array_set( \
3861  instance, \
3862  key, \
3863  object, \
3864  xctx \
3865 ) \
3866 (instance)->inf->set( \
3867  (instance), \
3868  (key), \
3869  (object), \
3870  (xctx) \
3871 )
3872 
3887  afw_utf8_t request_handler_type;
3888  const afw_utf8_t * description;
3889 };
3890 
3892 #define AFW_REQUEST_HANDLER_FACTORY_INTERFACE_NAME \
3893 "afw_request_handler_factory"
3894 
3896 typedef const afw_request_handler_t *
3897 (*afw_request_handler_factory_create_request_handler_cede_p_t)(
3898  const afw_request_handler_factory_t * instance,
3899  const afw_object_t * properties,
3900  const afw_pool_t * p,
3901  afw_xctx_t * xctx);
3902 
3907 };
3908 
3918 #define afw_request_handler_factory_create_request_handler_cede_p( \
3919  instance, \
3920  properties, \
3921  p, \
3922  xctx \
3923 ) \
3924 (instance)->inf->create_request_handler_cede_p( \
3925  (instance), \
3926  (properties), \
3927  (p), \
3928  (xctx) \
3929 )
3930 
3944  const afw_request_handler_inf_t *inf;
3945 };
3946 
3948 #define AFW_REQUEST_HANDLER_INTERFACE_NAME \
3949 "afw_request_handler"
3950 
3952 typedef void
3954  const afw_request_handler_t * instance,
3955  afw_xctx_t * xctx);
3956 
3958 typedef void
3960  const afw_request_handler_t * instance,
3961  const afw_request_t * request,
3962  afw_xctx_t * xctx);
3963 
3969 };
3970 
3976 #define afw_request_handler_release( \
3977  instance, \
3978  xctx \
3979 ) \
3980 (instance)->inf->release( \
3981  (instance), \
3982  (xctx) \
3983 )
3984 
3992 #define afw_request_handler_process( \
3993  instance, \
3994  request, \
3995  xctx \
3996 ) \
3997 (instance)->inf->process( \
3998  (instance), \
3999  (request), \
4000  (xctx) \
4001 )
4002 
4016  const afw_connection_inf_t *inf;
4017 };
4018 
4020 #define AFW_CONNECTION_INTERFACE_NAME \
4021 "afw_connection"
4022 
4024 typedef void
4026  const afw_connection_t * instance,
4027  afw_xctx_t * xctx);
4028 
4032  afw_connection_release_t release;
4033 };
4034 
4040 #define afw_connection_release( \
4041  instance, \
4042  xctx \
4043 ) \
4044 (instance)->inf->release( \
4045  (instance), \
4046  (xctx) \
4047 )
4048 
4062  const afw_request_inf_t *inf;
4063  afw_xctx_t * xctx;
4064  afw_read_cb_t read_content_cb;
4065  afw_write_cb_t write_content_cb;
4066  const afw_object_t * properties;
4067  const afw_utf8_t * method;
4068  const afw_utf8_t * uri;
4069  const afw_utf8_t * query_string;
4070  const afw_utf8_t * content_type;
4071  afw_size_t content_length;
4072  const afw_utf8_t * const * accept;
4073  const afw_object_t * error_info;
4074  const afw_content_type_t * response_content_type;
4075  afw_boolean_t is_closed;
4076 };
4077 
4079 #define AFW_REQUEST_INTERFACE_NAME \
4080 "afw_request"
4081 
4083 typedef void
4085  const afw_request_t * instance,
4086  afw_xctx_t * xctx);
4087 
4089 typedef void
4091  const afw_request_t * instance,
4092  const afw_object_t * error_info,
4093  afw_xctx_t * xctx);
4094 
4096 typedef void
4098  const afw_request_t * instance,
4099  afw_size_t buffer_size,
4100  void * buffer,
4101  afw_size_t * size,
4102  afw_boolean_t * more_to_read,
4103  afw_xctx_t * xctx);
4104 
4106 typedef void
4108  const afw_request_t * instance,
4109  const afw_utf8_t * code,
4110  const afw_utf8_t * reason,
4111  afw_xctx_t * xctx);
4112 
4114 typedef void
4116  const afw_request_t * instance,
4117  const afw_utf8_t * name,
4118  const afw_utf8_t * value,
4119  afw_xctx_t * xctx);
4120 
4122 typedef void
4124  const afw_request_t * instance,
4125  afw_size_t size,
4126  const void * buffer,
4127  afw_xctx_t * xctx);
4128 
4130 typedef void
4132  const afw_request_t * instance,
4133  afw_xctx_t * xctx);
4134 
4136 typedef void
4138  const afw_request_t * instance,
4139  afw_xctx_t * xctx);
4140 
4144  afw_request_release_t release;
4145  afw_request_set_error_info_t set_error_info;
4146  afw_request_read_raw_request_body_t read_raw_request_body;
4147  afw_request_set_response_status_code_t set_response_status_code;
4148  afw_request_write_response_header_t write_response_header;
4149  afw_request_write_raw_response_body_t write_raw_response_body;
4150  afw_request_flush_response_t flush_response;
4151  afw_request_finish_response_t finish_response;
4152 };
4153 
4159 #define afw_request_release( \
4160  instance, \
4161  xctx \
4162 ) \
4163 (instance)->inf->release( \
4164  (instance), \
4165  (xctx) \
4166 )
4167 
4174 #define afw_request_set_error_info( \
4175  instance, \
4176  error_info, \
4177  xctx \
4178 ) \
4179 (instance)->inf->set_error_info( \
4180  (instance), \
4181  (error_info), \
4182  (xctx) \
4183 )
4184 
4194 #define afw_request_read_raw_request_body( \
4195  instance, \
4196  buffer_size, \
4197  buffer, \
4198  size, \
4199  more_to_read, \
4200  xctx \
4201 ) \
4202 (instance)->inf->read_raw_request_body( \
4203  (instance), \
4204  (buffer_size), \
4205  (buffer), \
4206  (size), \
4207  (more_to_read), \
4208  (xctx) \
4209 )
4210 
4219 #define afw_request_set_response_status_code( \
4220  instance, \
4221  code, \
4222  reason, \
4223  xctx \
4224 ) \
4225 (instance)->inf->set_response_status_code( \
4226  (instance), \
4227  (code), \
4228  (reason), \
4229  (xctx) \
4230 )
4231 
4239 #define afw_request_write_response_header( \
4240  instance, \
4241  name, \
4242  value, \
4243  xctx \
4244 ) \
4245 (instance)->inf->write_response_header( \
4246  (instance), \
4247  (name), \
4248  (value), \
4249  (xctx) \
4250 )
4251 
4259 #define afw_request_write_raw_response_body( \
4260  instance, \
4261  size, \
4262  buffer, \
4263  xctx \
4264 ) \
4265 (instance)->inf->write_raw_response_body( \
4266  (instance), \
4267  (size), \
4268  (buffer), \
4269  (xctx) \
4270 )
4271 
4277 #define afw_request_flush_response( \
4278  instance, \
4279  xctx \
4280 ) \
4281 (instance)->inf->flush_response( \
4282  (instance), \
4283  (xctx) \
4284 )
4285 
4291 #define afw_request_finish_response( \
4292  instance, \
4293  xctx \
4294 ) \
4295 (instance)->inf->finish_response( \
4296  (instance), \
4297  (xctx) \
4298 )
4299 
4333 struct afw_xctx_s {
4334  const afw_xctx_inf_t *inf;
4335  const afw_pool_t * p;
4336  const afw_utf8_t * name;
4337  afw_xctx_t * parent;
4338  const afw_environment_t * env;
4339  const afw_thread_t * thread;
4340  const afw_request_t * request;
4341  const afw_utf8_t * uuid;
4342  const afw_object_t * properties;
4343  const afw_value_t * mode;
4344  const afw_stream_anchor_t * stream_anchor;
4345  afw_integer_t write_sequence;
4346  void * priv;
4347  afw_error_t * error;
4348  afw_try_t * current_try;
4349  const afw_runtime_objects_t * runtime_objects;
4350  afw_xctx_evaluation_stack_t * evaluation_stack;
4351  apr_array_header_t * stack;
4352  const afw_xctx_qualifier_stack_t * qualifier_stack;
4353  int current_frame_index;
4354  afw_adaptor_xctx_internal_t * adaptor_xctx_internal;
4356  afw_dateTime_t local_dateTime_when_created;
4357  afw_dateTime_t utc_dateTime_when_created;
4358  afw_size_t flags_count;
4359  const afw_boolean_t * flags;
4360  afw_boolean_t flags_is_mutable_copy;
4361  void * libxml2_error_func;
4362  afw_boolean_t secure;
4363 };
4364 
4366 #define AFW_XCTX_INTERFACE_NAME \
4367 "afw_xctx"
4368 
4370 typedef void
4372  afw_xctx_t * instance,
4373  afw_xctx_t * xctx);
4374 
4378  afw_xctx_release_t release;
4379 };
4380 
4386 #define afw_xctx_release( \
4387  instance, \
4388  xctx \
4389 ) \
4390 (instance)->inf->release( \
4391  (instance), \
4392  (xctx) \
4393 )
4394 
4408  const afw_stream_inf_t *inf;
4409  const afw_pool_t * p;
4410  const afw_utf8_t * streamId;
4411  afw_read_cb_t read_cb;
4412  afw_write_cb_t write_cb;
4413  const afw_boolean_t is_standard;
4414 };
4415 
4417 #define AFW_STREAM_INTERFACE_NAME \
4418 "afw_stream"
4419 
4421 typedef void
4423  const afw_stream_t * instance,
4424  afw_xctx_t * xctx);
4425 
4427 typedef void
4429  const afw_stream_t * instance,
4430  afw_xctx_t * xctx);
4431 
4433 typedef void
4435  const afw_stream_t * instance,
4436  const void * buffer,
4437  afw_size_t size,
4438  afw_xctx_t * xctx);
4439 
4441 typedef void
4443  const afw_stream_t * instance,
4444  const void * buffer,
4445  afw_size_t size,
4446  afw_xctx_t * xctx);
4447 
4451  afw_stream_release_t release;
4452  afw_stream_flush_t flush;
4453  afw_stream_read_t read;
4454  afw_stream_write_t write;
4455 };
4456 
4462 #define afw_stream_release( \
4463  instance, \
4464  xctx \
4465 ) \
4466 (instance)->inf->release( \
4467  (instance), \
4468  (xctx) \
4469 )
4470 
4476 #define afw_stream_flush( \
4477  instance, \
4478  xctx \
4479 ) \
4480 (instance)->inf->flush( \
4481  (instance), \
4482  (xctx) \
4483 )
4484 
4492 #define afw_stream_read( \
4493  instance, \
4494  buffer, \
4495  size, \
4496  xctx \
4497 ) \
4498 (instance)->inf->read( \
4499  (instance), \
4500  (buffer), \
4501  (size), \
4502  (xctx) \
4503 )
4504 
4512 #define afw_stream_write( \
4513  instance, \
4514  buffer, \
4515  size, \
4516  xctx \
4517 ) \
4518 (instance)->inf->write( \
4519  (instance), \
4520  (buffer), \
4521  (size), \
4522  (xctx) \
4523 )
4524 
4539 struct afw_pool_s {
4540  const afw_pool_inf_t *inf;
4541 };
4542 
4544 #define AFW_POOL_INTERFACE_NAME \
4545 "afw_pool"
4546 
4548 typedef void
4550  const afw_pool_t * instance,
4551  afw_xctx_t * xctx);
4552 
4554 typedef void
4556  const afw_pool_t * instance,
4557  afw_xctx_t * xctx);
4558 
4560 typedef void
4562  const afw_pool_t * instance,
4563  afw_xctx_t * xctx);
4564 
4566 typedef apr_pool_t *
4567 (*afw_pool_get_apr_pool_t)(
4568  const afw_pool_t * instance);
4569 
4571 typedef void *
4572 (*afw_pool_calloc_t)(
4573  const afw_pool_t * instance,
4574  afw_size_t size,
4575  afw_xctx_t * xctx);
4576 
4578 typedef void *
4579 (*afw_pool_malloc_t)(
4580  const afw_pool_t * instance,
4581  afw_size_t size,
4582  afw_xctx_t * xctx);
4583 
4585 typedef void
4586 (*afw_pool_free_t)(
4587  const afw_pool_t * instance,
4588  void * address,
4589  afw_size_t size,
4590  afw_xctx_t * xctx);
4591 
4593 typedef void
4595  const afw_pool_t * instance,
4596  void * data,
4597  void * data2,
4599  afw_xctx_t * xctx);
4600 
4602 typedef void
4604  const afw_pool_t * instance,
4605  void * data,
4606  void * data2,
4608  afw_xctx_t * xctx);
4609 
4611 typedef void
4613  const afw_pool_t * instance,
4614  afw_xctx_t * xctx,
4615  const afw_utf8_z_t * source_z);
4616 
4618 typedef void
4620  const afw_pool_t * instance,
4621  afw_xctx_t * xctx,
4622  const afw_utf8_z_t * source_z);
4623 
4625 typedef void
4627  const afw_pool_t * instance,
4628  afw_xctx_t * xctx,
4629  const afw_utf8_z_t * source_z);
4630 
4632 typedef void *
4633 (*afw_pool_calloc_debug_t)(
4634  const afw_pool_t * instance,
4635  afw_size_t size,
4636  afw_xctx_t * xctx,
4637  const afw_utf8_z_t * source_z);
4638 
4640 typedef void *
4641 (*afw_pool_malloc_debug_t)(
4642  const afw_pool_t * instance,
4643  afw_size_t size,
4644  afw_xctx_t * xctx,
4645  const afw_utf8_z_t * source_z);
4646 
4648 typedef void
4650  const afw_pool_t * instance,
4651  void * address,
4652  afw_size_t size,
4653  afw_xctx_t * xctx,
4654  const afw_utf8_z_t * source_z);
4655 
4657 typedef void
4659  const afw_pool_t * instance,
4660  void * data,
4661  void * data2,
4663  afw_xctx_t * xctx,
4664  const afw_utf8_z_t * source_z);
4665 
4667 typedef void
4669  const afw_pool_t * instance,
4670  void * data,
4671  void * data2,
4673  afw_xctx_t * xctx,
4674  const afw_utf8_z_t * source_z);
4675 
4679  afw_pool_release_t release;
4680  afw_pool_add_reference_t add_reference;
4681  afw_pool_destroy_t destroy;
4682  afw_pool_get_apr_pool_t get_apr_pool;
4683  afw_pool_calloc_t calloc;
4684  afw_pool_malloc_t malloc;
4685  afw_pool_free_t free;
4686  afw_pool_register_cleanup_before_t register_cleanup_before;
4687  afw_pool_deregister_cleanup_t deregister_cleanup;
4688  afw_pool_release_debug_t release_debug;
4689  afw_pool_add_reference_debug_t add_reference_debug;
4690  afw_pool_destroy_debug_t destroy_debug;
4691  afw_pool_calloc_debug_t calloc_debug;
4692  afw_pool_malloc_debug_t malloc_debug;
4693  afw_pool_free_debug_t free_debug;
4694  afw_pool_register_cleanup_before_debug_t register_cleanup_before_debug;
4695  afw_pool_deregister_cleanup_debug_t deregister_cleanup_debug;
4696 };
4697 
4703 #define afw_pool_release( \
4704  instance, \
4705  xctx \
4706 ) \
4707 (instance)->inf->release( \
4708  (instance), \
4709  (xctx) \
4710 )
4711 
4717 #define afw_pool_add_reference( \
4718  instance, \
4719  xctx \
4720 ) \
4721 (instance)->inf->add_reference( \
4722  (instance), \
4723  (xctx) \
4724 )
4725 
4731 #define afw_pool_destroy( \
4732  instance, \
4733  xctx \
4734 ) \
4735 (instance)->inf->destroy( \
4736  (instance), \
4737  (xctx) \
4738 )
4739 
4744 #define afw_pool_get_apr_pool( \
4745  instance \
4746 ) \
4747 (instance)->inf->get_apr_pool( \
4748  (instance) \
4749 )
4750 
4757 #define afw_pool_calloc( \
4758  instance, \
4759  size, \
4760  xctx \
4761 ) \
4762 (instance)->inf->calloc( \
4763  (instance), \
4764  (size), \
4765  (xctx) \
4766 )
4767 
4774 #define afw_pool_malloc( \
4775  instance, \
4776  size, \
4777  xctx \
4778 ) \
4779 (instance)->inf->malloc( \
4780  (instance), \
4781  (size), \
4782  (xctx) \
4783 )
4784 
4792 #define afw_pool_free( \
4793  instance, \
4794  address, \
4795  size, \
4796  xctx \
4797 ) \
4798 (instance)->inf->free( \
4799  (instance), \
4800  (address), \
4801  (size), \
4802  (xctx) \
4803 )
4804 
4813 #define afw_pool_register_cleanup_before( \
4814  instance, \
4815  data, \
4816  data2, \
4817  cleanup, \
4818  xctx \
4819 ) \
4820 (instance)->inf->register_cleanup_before( \
4821  (instance), \
4822  (data), \
4823  (data2), \
4824  (cleanup), \
4825  (xctx) \
4826 )
4827 
4836 #define afw_pool_deregister_cleanup( \
4837  instance, \
4838  data, \
4839  data2, \
4840  cleanup, \
4841  xctx \
4842 ) \
4843 (instance)->inf->deregister_cleanup( \
4844  (instance), \
4845  (data), \
4846  (data2), \
4847  (cleanup), \
4848  (xctx) \
4849 )
4850 
4857 #define afw_pool_release_debug( \
4858  instance, \
4859  xctx, \
4860  source_z \
4861 ) \
4862 (instance)->inf->release_debug( \
4863  (instance), \
4864  (xctx), \
4865  (source_z) \
4866 )
4867 
4874 #define afw_pool_add_reference_debug( \
4875  instance, \
4876  xctx, \
4877  source_z \
4878 ) \
4879 (instance)->inf->add_reference_debug( \
4880  (instance), \
4881  (xctx), \
4882  (source_z) \
4883 )
4884 
4891 #define afw_pool_destroy_debug( \
4892  instance, \
4893  xctx, \
4894  source_z \
4895 ) \
4896 (instance)->inf->destroy_debug( \
4897  (instance), \
4898  (xctx), \
4899  (source_z) \
4900 )
4901 
4909 #define afw_pool_calloc_debug( \
4910  instance, \
4911  size, \
4912  xctx, \
4913  source_z \
4914 ) \
4915 (instance)->inf->calloc_debug( \
4916  (instance), \
4917  (size), \
4918  (xctx), \
4919  (source_z) \
4920 )
4921 
4929 #define afw_pool_malloc_debug( \
4930  instance, \
4931  size, \
4932  xctx, \
4933  source_z \
4934 ) \
4935 (instance)->inf->malloc_debug( \
4936  (instance), \
4937  (size), \
4938  (xctx), \
4939  (source_z) \
4940 )
4941 
4950 #define afw_pool_free_debug( \
4951  instance, \
4952  address, \
4953  size, \
4954  xctx, \
4955  source_z \
4956 ) \
4957 (instance)->inf->free_debug( \
4958  (instance), \
4959  (address), \
4960  (size), \
4961  (xctx), \
4962  (source_z) \
4963 )
4964 
4974 #define afw_pool_register_cleanup_before_debug( \
4975  instance, \
4976  data, \
4977  data2, \
4978  cleanup, \
4979  xctx, \
4980  source_z \
4981 ) \
4982 (instance)->inf->register_cleanup_before_debug( \
4983  (instance), \
4984  (data), \
4985  (data2), \
4986  (cleanup), \
4987  (xctx), \
4988  (source_z) \
4989 )
4990 
5000 #define afw_pool_deregister_cleanup_debug( \
5001  instance, \
5002  data, \
5003  data2, \
5004  cleanup, \
5005  xctx, \
5006  source_z \
5007 ) \
5008 (instance)->inf->deregister_cleanup_debug( \
5009  (instance), \
5010  (data), \
5011  (data2), \
5012  (cleanup), \
5013  (xctx), \
5014  (source_z) \
5015 )
5016 
5030  const afw_adaptor_journal_inf_t *inf;
5031  const afw_adaptor_session_t * session;
5032 };
5033 
5035 #define AFW_ADAPTOR_JOURNAL_INTERFACE_NAME \
5036 "afw_adaptor_journal"
5037 
5039 typedef const afw_utf8_t *
5040 (*afw_adaptor_journal_add_entry_t)(
5041  const afw_adaptor_journal_t * instance,
5042  const afw_adaptor_impl_request_t * impl_request,
5043  const afw_object_t * entry,
5044  afw_xctx_t * xctx);
5045 
5047 typedef void
5049  const afw_adaptor_journal_t * instance,
5050  const afw_adaptor_impl_request_t * impl_request,
5052  const afw_utf8_t * consumer_id,
5053  const afw_utf8_t * entry_cursor,
5054  afw_size_t limit,
5055  const afw_object_t * response,
5056  afw_xctx_t * xctx);
5057 
5059 typedef void
5061  const afw_adaptor_journal_t * instance,
5062  const afw_adaptor_impl_request_t * impl_request,
5063  const afw_utf8_t * consumer_id,
5064  const afw_utf8_t * entry_cursor,
5065  afw_xctx_t * xctx);
5066 
5072  afw_adaptor_journal_mark_entry_consumed_t mark_entry_consumed;
5073 };
5074 
5084 #define afw_adaptor_journal_add_entry( \
5085  instance, \
5086  impl_request, \
5087  entry, \
5088  xctx \
5089 ) \
5090 (instance)->inf->add_entry( \
5091  (instance), \
5092  (impl_request), \
5093  (entry), \
5094  (xctx) \
5095 )
5096 
5120 #define afw_adaptor_journal_get_entry( \
5121  instance, \
5122  impl_request, \
5123  option, \
5124  consumer_id, \
5125  entry_cursor, \
5126  limit, \
5127  response, \
5128  xctx \
5129 ) \
5130 (instance)->inf->get_entry( \
5131  (instance), \
5132  (impl_request), \
5133  (option), \
5134  (consumer_id), \
5135  (entry_cursor), \
5136  (limit), \
5137  (response), \
5138  (xctx) \
5139 )
5140 
5152 #define afw_adaptor_journal_mark_entry_consumed( \
5153  instance, \
5154  impl_request, \
5155  consumer_id, \
5156  entry_cursor, \
5157  xctx \
5158 ) \
5159 (instance)->inf->mark_entry_consumed( \
5160  (instance), \
5161  (impl_request), \
5162  (consumer_id), \
5163  (entry_cursor), \
5164  (xctx) \
5165 )
5166 
5179 struct afw_value_s {
5180  const afw_value_inf_t *inf;
5181 };
5182 
5184 #define AFW_VALUE_INTERFACE_NAME \
5185 "afw_value"
5186 
5188 typedef void
5190  const afw_value_t * instance,
5191  afw_xctx_t * xctx);
5192 
5194 typedef const afw_value_t *
5195 (*afw_value_get_reference_t)(
5196  const afw_value_t * instance,
5197  const afw_pool_t * p,
5198  afw_xctx_t * xctx);
5199 
5201 typedef const afw_value_t *
5202 (*afw_value_optional_evaluate_t)(
5203  const afw_value_t * instance,
5204  const afw_pool_t * p,
5205  afw_xctx_t * xctx);
5206 
5208 typedef const afw_data_type_t *
5209 (*afw_value_get_data_type_t)(
5210  const afw_value_t * instance,
5211  afw_xctx_t * xctx);
5212 
5214 typedef const afw_data_type_t *
5215 (*afw_value_get_evaluated_data_type_t)(
5216  const afw_value_t * instance,
5217  afw_xctx_t * xctx);
5218 
5220 typedef const afw_utf8_t *
5221 (*afw_value_get_evaluated_data_type_parameter_t)(
5222  const afw_value_t * instance,
5223  afw_xctx_t * xctx);
5224 
5226 typedef const afw_value_t *
5227 (*afw_value_get_evaluated_meta_t)(
5228  const afw_value_t * instance,
5229  const afw_pool_t * p,
5230  afw_xctx_t * xctx);
5231 
5233 typedef const afw_value_t *
5234 (*afw_value_get_evaluated_metas_t)(
5235  const afw_value_t * instance,
5236  const afw_pool_t * p,
5237  afw_xctx_t * xctx);
5238 
5240 typedef void
5242  const afw_value_t * instance,
5243  const afw_writer_t * writer,
5244  afw_xctx_t * xctx);
5245 
5247 typedef void
5249  const afw_value_t * instance,
5250  const afw_writer_t * writer,
5251  afw_xctx_t * xctx);
5252 
5254 typedef void
5256  const afw_value_t * instance,
5257  afw_value_info_t * info,
5258  const afw_pool_t * p,
5259  afw_xctx_t * xctx);
5260 
5264  afw_value_optional_release_t optional_release;
5265  afw_value_get_reference_t get_reference;
5266  afw_value_optional_evaluate_t optional_evaluate;
5267  afw_value_get_data_type_t get_data_type;
5268  afw_value_get_evaluated_data_type_t get_evaluated_data_type;
5269  afw_value_get_evaluated_data_type_parameter_t get_evaluated_data_type_parameter;
5270  afw_value_get_evaluated_meta_t get_evaluated_meta;
5271  afw_value_get_evaluated_metas_t get_evaluated_metas;
5272  afw_value_produce_compiler_listing_t produce_compiler_listing;
5273  afw_value_decompile_t decompile;
5274  afw_value_get_info_t get_info;
5275  const afw_data_type_t * data_type;
5276  const afw_data_type_t * fully_evaluated_data_type;
5277 };
5278 
5284 #define afw_value_optional_release( \
5285  instance, \
5286  xctx \
5287 ) \
5288 (instance)->inf->optional_release( \
5289  (instance), \
5290  (xctx) \
5291 )
5292 
5299 #define afw_value_get_reference( \
5300  instance, \
5301  p, \
5302  xctx \
5303 ) \
5304 (instance)->inf->get_reference( \
5305  (instance), \
5306  (p), \
5307  (xctx) \
5308 )
5309 
5316 #define afw_value_optional_evaluate( \
5317  instance, \
5318  p, \
5319  xctx \
5320 ) \
5321 (instance)->inf->optional_evaluate( \
5322  (instance), \
5323  (p), \
5324  (xctx) \
5325 )
5326 
5332 #define afw_value_get_data_type( \
5333  instance, \
5334  xctx \
5335 ) \
5336 (instance)->inf->get_data_type( \
5337  (instance), \
5338  (xctx) \
5339 )
5340 
5346 #define afw_value_get_evaluated_data_type( \
5347  instance, \
5348  xctx \
5349 ) \
5350 (instance)->inf->get_evaluated_data_type( \
5351  (instance), \
5352  (xctx) \
5353 )
5354 
5360 #define afw_value_get_evaluated_data_type_parameter( \
5361  instance, \
5362  xctx \
5363 ) \
5364 (instance)->inf->get_evaluated_data_type_parameter( \
5365  (instance), \
5366  (xctx) \
5367 )
5368 
5377 #define afw_value_get_evaluated_meta( \
5378  instance, \
5379  p, \
5380  xctx \
5381 ) \
5382 (instance)->inf->get_evaluated_meta( \
5383  (instance), \
5384  (p), \
5385  (xctx) \
5386 )
5387 
5396 #define afw_value_get_evaluated_metas( \
5397  instance, \
5398  p, \
5399  xctx \
5400 ) \
5401 (instance)->inf->get_evaluated_metas( \
5402  (instance), \
5403  (p), \
5404  (xctx) \
5405 )
5406 
5413 #define afw_value_produce_compiler_listing( \
5414  instance, \
5415  writer, \
5416  xctx \
5417 ) \
5418 (instance)->inf->produce_compiler_listing( \
5419  (instance), \
5420  (writer), \
5421  (xctx) \
5422 )
5423 
5430 #define afw_value_decompile( \
5431  instance, \
5432  writer, \
5433  xctx \
5434 ) \
5435 (instance)->inf->decompile( \
5436  (instance), \
5437  (writer), \
5438  (xctx) \
5439 )
5440 
5449 #define afw_value_get_info( \
5450  instance, \
5451  info, \
5452  p, \
5453  xctx \
5454 ) \
5455 (instance)->inf->get_info( \
5456  (instance), \
5457  (info), \
5458  (p), \
5459  (xctx) \
5460 )
5461 
5475  const afw_variable_handler_inf_t *inf;
5476 };
5477 
5479 #define AFW_VARIABLE_HANDLER_INTERFACE_NAME \
5480 "afw_variable_handler"
5481 
5483 typedef const afw_value_t *
5484 (*afw_variable_handler_get_variable_t)(
5485  const afw_variable_handler_t * instance,
5486  const afw_utf8_t * qualifier,
5487  const afw_utf8_t * name,
5488  afw_xctx_t * xctx);
5489 
5493  const afw_variable_handler_t * instance,
5494  const afw_utf8_t * qualifier,
5495  const afw_utf8_t * name,
5496  const afw_value_t * value,
5497  afw_xctx_t * xctx);
5498 
5504 };
5505 
5513 #define afw_variable_handler_get_variable( \
5514  instance, \
5515  qualifier, \
5516  name, \
5517  xctx \
5518 ) \
5519 (instance)->inf->get_variable( \
5520  (instance), \
5521  (qualifier), \
5522  (name), \
5523  (xctx) \
5524 )
5525 
5534 #define afw_variable_handler_set_variable( \
5535  instance, \
5536  qualifier, \
5537  name, \
5538  value, \
5539  xctx \
5540 ) \
5541 (instance)->inf->set_variable( \
5542  (instance), \
5543  (qualifier), \
5544  (name), \
5545  (value), \
5546  (xctx) \
5547 )
5548 
5562  const afw_writer_inf_t *inf;
5563  const afw_pool_t * p;
5564  afw_write_cb_t write_raw_cb;
5565  afw_size_t indent;
5566  const afw_utf8_t * tab;
5567 };
5568 
5570 #define AFW_WRITER_INTERFACE_NAME \
5571 "afw_writer"
5572 
5574 typedef void
5576  const afw_writer_t * instance,
5577  afw_xctx_t * xctx);
5578 
5580 typedef void
5582  const afw_writer_t * instance,
5583  afw_xctx_t * xctx);
5584 
5586 typedef void
5588  const afw_writer_t * instance,
5589  const void * buffer,
5590  afw_size_t size,
5591  afw_xctx_t * xctx);
5592 
5594 typedef void
5596  const afw_writer_t * instance,
5597  afw_xctx_t * xctx);
5598 
5600 typedef void
5602  const afw_writer_t * instance,
5603  afw_xctx_t * xctx);
5604 
5606 typedef void
5608  const afw_writer_t * instance,
5609  afw_xctx_t * xctx);
5610 
5614  afw_writer_release_t release;
5615  afw_writer_flush_t flush;
5616  afw_writer_write_t write;
5617  afw_writer_write_eol_t write_eol;
5618  afw_writer_increment_indent_t increment_indent;
5619  afw_writer_decrement_indent_t decrement_indent;
5620 };
5621 
5627 #define afw_writer_release( \
5628  instance, \
5629  xctx \
5630 ) \
5631 (instance)->inf->release( \
5632  (instance), \
5633  (xctx) \
5634 )
5635 
5641 #define afw_writer_flush( \
5642  instance, \
5643  xctx \
5644 ) \
5645 (instance)->inf->flush( \
5646  (instance), \
5647  (xctx) \
5648 )
5649 
5657 #define afw_writer_write( \
5658  instance, \
5659  buffer, \
5660  size, \
5661  xctx \
5662 ) \
5663 (instance)->inf->write( \
5664  (instance), \
5665  (buffer), \
5666  (size), \
5667  (xctx) \
5668 )
5669 
5675 #define afw_writer_write_eol( \
5676  instance, \
5677  xctx \
5678 ) \
5679 (instance)->inf->write_eol( \
5680  (instance), \
5681  (xctx) \
5682 )
5683 
5689 #define afw_writer_increment_indent( \
5690  instance, \
5691  xctx \
5692 ) \
5693 (instance)->inf->increment_indent( \
5694  (instance), \
5695  (xctx) \
5696 )
5697 
5703 #define afw_writer_decrement_indent( \
5704  instance, \
5705  xctx \
5706 ) \
5707 (instance)->inf->decrement_indent( \
5708  (instance), \
5709  (xctx) \
5710 )
5711 
5717 AFW_END_DECLARES
5718 
5719 
5720 
5721 #endif /* __AFW_INTERFACE_H__ */
Adaptive Framework Common Opaques Header.
#define AFW_BEGIN_DECLARES
Adaptive Framework Interface Common Header.
Interface afw_interface opaque typedefs.
const afw_adaptor_t *(* afw_adaptor_factory_create_adaptor_cede_p_t)(const afw_adaptor_factory_t *instance, const afw_object_t *properties, const afw_pool_t *p, afw_xctx_t *xctx)
void(* afw_adaptor_impl_index_cursor_release_t)(const afw_adaptor_impl_index_cursor_t *instance, afw_xctx_t *xctx)
afw_boolean_t(* afw_adaptor_impl_index_cursor_contains_object_t)(const afw_adaptor_impl_index_cursor_t *instance, const afw_object_t *object, afw_xctx_t *xctx)
const afw_object_t *(* afw_adaptor_impl_index_cursor_get_next_object_t)(const afw_adaptor_impl_index_cursor_t *instance, const afw_pool_t *pool, afw_xctx_t *xctx)
const afw_adaptor_impl_index_cursor_t *(* afw_adaptor_impl_index_cursor_inner_join_t)(const afw_adaptor_impl_index_cursor_t *instance, const afw_adaptor_impl_index_cursor_t *cursor, afw_xctx_t *xctx)
afw_boolean_t(* afw_adaptor_impl_index_cursor_get_count_t)(const afw_adaptor_impl_index_cursor_t *instance, size_t *count, afw_xctx_t *xctx)
afw_rc_t(* afw_adaptor_impl_index_delete_t)(const afw_adaptor_impl_index_t *instance, const afw_utf8_t *object_type_id, const afw_utf8_t *object_id, const afw_utf8_t *key, const afw_utf8_t *value, const afw_pool_t *pool, afw_xctx_t *xctx)
afw_rc_t(* afw_adaptor_impl_index_add_t)(const afw_adaptor_impl_index_t *instance, const afw_utf8_t *object_type_id, const afw_utf8_t *object_id, const afw_utf8_t *key, const afw_utf8_t *value, afw_boolean_t unique, const afw_pool_t *pool, afw_xctx_t *xctx)
void(* afw_adaptor_impl_index_open_t)(const afw_adaptor_impl_index_t *instance, const afw_utf8_t *object_type_id, const afw_utf8_t *key, afw_boolean_t integer, afw_boolean_t unique, afw_boolean_t reverse, const afw_pool_t *pool, afw_xctx_t *xctx)
const afw_adaptor_session_t *(* afw_adaptor_impl_index_get_session_t)(const afw_adaptor_impl_index_t *instance, afw_xctx_t *xctx)
const afw_object_t *(* afw_adaptor_impl_index_get_index_definitions_t)(const afw_adaptor_impl_index_t *instance, afw_xctx_t *xctx)
afw_rc_t(* afw_adaptor_impl_index_drop_t)(const afw_adaptor_impl_index_t *instance, const afw_utf8_t *object_type_id, const afw_utf8_t *key, const afw_pool_t *pool, afw_xctx_t *xctx)
afw_rc_t(* afw_adaptor_impl_index_replace_t)(const afw_adaptor_impl_index_t *instance, const afw_utf8_t *object_type_id, const afw_utf8_t *object_id, const afw_utf8_t *key, const afw_utf8_t *old_value, const afw_utf8_t *new_value, const afw_pool_t *pool, afw_xctx_t *xctx)
void(* afw_adaptor_impl_index_release_t)(const afw_adaptor_impl_index_t *instance, afw_xctx_t *xctx)
void(* afw_adaptor_impl_index_update_index_definitions_t)(const afw_adaptor_impl_index_t *instance, const afw_object_t *indexDefinitions, afw_xctx_t *xctx)
afw_adaptor_impl_index_cursor_t *(* afw_adaptor_impl_index_open_cursor_t)(const afw_adaptor_impl_index_t *instance, const afw_utf8_t *object_type_id, const afw_utf8_t *index_key, int operator, const afw_utf8_t *value, afw_boolean_t unique, const afw_pool_t *pool, afw_xctx_t *xctx)
void(* afw_adaptor_destroy_t)(const afw_adaptor_t *instance, afw_xctx_t *xctx)
const afw_object_t *(* afw_adaptor_get_additional_metrics_t)(const afw_adaptor_t *instance, const afw_pool_t *p, afw_xctx_t *xctx)
const afw_adaptor_session_t *(* afw_adaptor_create_adaptor_session_t)(const afw_adaptor_t *instance, afw_xctx_t *xctx)
const afw_utf8_t *(* afw_adaptor_journal_add_entry_t)(const afw_adaptor_journal_t *instance, const afw_adaptor_impl_request_t *impl_request, const afw_object_t *entry, afw_xctx_t *xctx)
void(* afw_adaptor_journal_get_entry_t)(const afw_adaptor_journal_t *instance, const afw_adaptor_impl_request_t *impl_request, afw_adaptor_journal_option_t option, const afw_utf8_t *consumer_id, const afw_utf8_t *entry_cursor, afw_size_t limit, const afw_object_t *response, afw_xctx_t *xctx)
void(* afw_adaptor_journal_mark_entry_consumed_t)(const afw_adaptor_journal_t *instance, const afw_adaptor_impl_request_t *impl_request, const afw_utf8_t *consumer_id, const afw_utf8_t *entry_cursor, afw_xctx_t *xctx)
void(* afw_adaptor_key_value_delete_t)(const afw_adaptor_key_value_t *instance, const afw_utf8_t *namespace, const afw_memory_t *key, const afw_memory_t *value, afw_boolean_t must_exist, afw_xctx_t *xctx)
void(* afw_adaptor_key_value_add_t)(const afw_adaptor_key_value_t *instance, const afw_utf8_t *namespace, const afw_memory_t *key, const afw_memory_t *value, afw_xctx_t *xctx)
void(* afw_adaptor_key_value_replace_t)(const afw_adaptor_key_value_t *instance, const afw_utf8_t *namespace, const afw_memory_t *key, const afw_memory_t *value, afw_boolean_t must_exist, afw_xctx_t *xctx)
const afw_memory_t *(* afw_adaptor_key_value_get_t)(const afw_adaptor_key_value_t *instance, const afw_utf8_t *namespace, const afw_memory_t *key, afw_xctx_t *xctx)
void(* afw_adaptor_object_type_cache_set_t)(const afw_adaptor_object_type_cache_t *instance, const afw_object_type_t *object_type, afw_xctx_t *xctx)
const afw_object_type_t *(* afw_adaptor_object_type_cache_get_t)(const afw_adaptor_object_type_cache_t *instance, const afw_utf8_t *object_type_id, afw_boolean_t *final_result, afw_xctx_t *xctx)
const afw_adaptor_transaction_t *(* afw_adaptor_session_begin_transaction_t)(const afw_adaptor_session_t *instance, afw_xctx_t *xctx)
void(* afw_adaptor_session_delete_object_t)(const afw_adaptor_session_t *instance, const afw_adaptor_impl_request_t *impl_request, const afw_utf8_t *object_type_id, const afw_utf8_t *object_id, const afw_object_t *adaptor_type_specific, afw_xctx_t *xctx)
const afw_adaptor_object_type_cache_t *(* afw_adaptor_session_get_object_type_cache_interface_t)(const afw_adaptor_session_t *instance, afw_xctx_t *xctx)
const afw_adaptor_impl_index_t *(* afw_adaptor_session_get_index_interface_t)(const afw_adaptor_session_t *instance, afw_xctx_t *xctx)
const afw_adaptor_journal_t *(* afw_adaptor_session_get_journal_interface_t)(const afw_adaptor_session_t *instance, afw_xctx_t *xctx)
void(* afw_adaptor_session_modify_object_t)(const afw_adaptor_session_t *instance, const afw_adaptor_impl_request_t *impl_request, const afw_utf8_t *object_type_id, const afw_utf8_t *object_id, const afw_adaptor_modify_entry_t *const *entry, const afw_object_t *adaptor_type_specific, afw_xctx_t *xctx)
void(* afw_adaptor_session_replace_object_t)(const afw_adaptor_session_t *instance, const afw_adaptor_impl_request_t *impl_request, const afw_utf8_t *object_type_id, const afw_utf8_t *object_id, const afw_object_t *replacement_object, const afw_object_t *adaptor_type_specific, afw_xctx_t *xctx)
const afw_utf8_t *(* afw_adaptor_session_add_object_t)(const afw_adaptor_session_t *instance, const afw_adaptor_impl_request_t *impl_request, const afw_utf8_t *object_type_id, const afw_utf8_t *suggested_object_id, const afw_object_t *object, const afw_object_t *adaptor_type_specific, afw_xctx_t *xctx)
void(* afw_adaptor_session_retrieve_objects_t)(const afw_adaptor_session_t *instance, const afw_adaptor_impl_request_t *impl_request, const afw_utf8_t *object_type_id, const afw_query_criteria_t *criteria, void *context, afw_object_cb_t callback, const afw_object_t *adaptor_type_specific, const afw_pool_t *p, afw_xctx_t *xctx)
void(* afw_adaptor_session_get_object_t)(const afw_adaptor_session_t *instance, const afw_adaptor_impl_request_t *impl_request, const afw_utf8_t *object_type_id, const afw_utf8_t *object_id, void *context, afw_object_cb_t callback, const afw_object_t *adaptor_type_specific, const afw_pool_t *p, afw_xctx_t *xctx)
const afw_adaptor_key_value_t *(* afw_adaptor_session_get_key_value_interface_t)(const afw_adaptor_session_t *instance, afw_xctx_t *xctx)
void(* afw_adaptor_session_destroy_t)(const afw_adaptor_session_t *instance, afw_xctx_t *xctx)
void(* afw_adaptor_transaction_commit_t)(const afw_adaptor_transaction_t *instance, afw_xctx_t *xctx)
void(* afw_adaptor_transaction_release_t)(const afw_adaptor_transaction_t *instance, afw_xctx_t *xctx)
const afw_authorization_handler_t *(* afw_authorization_handler_factory_create_authorization_handler_cede_p_t)(const afw_authorization_handler_factory_t *instance, const afw_object_t *properties, const afw_pool_t *p, afw_xctx_t *xctx)
void(* afw_authorization_handler_destroy_t)(const afw_authorization_handler_t *instance, afw_xctx_t *xctx)
const afw_value_t *(* afw_authorization_handler_check_t)(const afw_authorization_handler_t *instance, const afw_value_t *resource_id, const afw_value_t *object, const afw_value_t *action_id, const afw_pool_t *p, afw_xctx_t *xctx)
afw_boolean_t(* afw_object_cb_t)(const afw_object_t *object, void *context, afw_xctx_t *xctx)
Typedef for afw_adaptor_session_object callback.
Definition: afw_common.h:1176
struct afw_xctx_internal_qualifier_stack_s afw_xctx_qualifier_stack_t
Typedef for xctx qualifier stack.
struct afw_iterator_s afw_iterator_t
_Bool afw_boolean_t
Definition: afw_common.h:373
int afw_log_priority_mask_t
Definition: afw_common.h:659
afw_utf8_octet_t afw_utf8_z_t
NFC normalized UTF-8 null terminated string.
Definition: afw_common.h:523
struct afw_xctx_evaluation_stack_s afw_xctx_evaluation_stack_t
struct afw_authorization_handler_impl_s afw_authorization_handler_impl_t
afw_size_t(* afw_read_cb_t)(void *context, const void *buffer, afw_size_t size, afw_boolean_t *more_to_read, const afw_pool_t *p, afw_xctx_t *xctx)
Typedef for read callback function.
Definition: afw_common.h:1207
enum afw_compile_type_e afw_compile_type_t
Compile type enum.
apr_size_t afw_size_t
size_t.
Definition: afw_common.h:151
int afw_rc_t
Definition: afw_common.h:663
void(* afw_pool_cleanup_function_p_t)(void *data, void *data2, const afw_pool_t *p, afw_xctx_t *xctx)
Typedef for pool cleanup functions.
Definition: afw_common.h:954
enum afw_log_priority_e afw_log_priority_t
Log levels. See afw_log.h for more information.
afw_size_t(* afw_write_cb_t)(void *context, const void *buffer, afw_size_t size, const afw_pool_t *p, afw_xctx_t *xctx)
Typedef for write callback function.
Definition: afw_common.h:1226
apr_int64_t afw_integer_t
typedef for big signed int.
Definition: afw_common.h:321
enum afw_adaptor_journal_option_e afw_adaptor_journal_option_t
Typedef for afw_adaptor_journal get_entry options enum.
void(* afw_connection_release_t)(const afw_connection_t *instance, afw_xctx_t *xctx)
const afw_content_type_object_list_writer_t *(* afw_content_type_create_object_list_writer_t)(const afw_content_type_t *instance, const afw_object_options_t *options, void *context, afw_write_cb_t callback, const afw_pool_t *p, afw_xctx_t *xctx)
void(* afw_content_type_write_value_t)(const afw_content_type_t *instance, const afw_value_t *value, const afw_object_options_t *options, void *context, afw_write_cb_t callback, const afw_pool_t *p, afw_xctx_t *xctx)
const afw_value_t *(* afw_content_type_raw_to_value_t)(const afw_content_type_t *instance, const afw_memory_t *raw, const afw_utf8_t *source_location, const afw_pool_t *p, afw_xctx_t *xctx)
const afw_object_t *(* afw_content_type_raw_to_object_t)(const afw_content_type_t *instance, const afw_memory_t *raw, const afw_utf8_t *source_location, const afw_utf8_t *adaptor_id, const afw_utf8_t *object_type_id, const afw_utf8_t *object_id, afw_boolean_t cede_p, const afw_pool_t *p, afw_xctx_t *xctx)
void(* afw_content_type_object_list_writer_write_object_t)(const afw_content_type_object_list_writer_t *instance, const afw_object_t *object, const afw_pool_t *p, afw_xctx_t *xctx)
void(* afw_content_type_object_list_writer_release_t)(const afw_content_type_object_list_writer_t *instance, afw_xctx_t *xctx)
void(* afw_data_type_value_compiler_listing_t)(const afw_data_type_t *instance, const afw_writer_t *writer, const afw_value_t *value, afw_xctx_t *xctx)
void(* afw_data_type_clone_internal_t)(const afw_data_type_t *instance, void *to_internal, const void *from_internal, const afw_pool_t *p, afw_xctx_t *xctx)
int(* afw_data_type_compare_internal_t)(const afw_data_type_t *instance, const void *internal1, const void *internal2, afw_xctx_t *xctx)
void(* afw_data_type_convert_internal_t)(const afw_data_type_t *instance, void *to_internal, const void *from_internal, const afw_data_type_t *to_data_type, const afw_pool_t *p, afw_xctx_t *xctx)
void(* afw_data_type_write_as_expression_t)(const afw_data_type_t *instance, const afw_writer_t *writer, const void *from_internal, afw_xctx_t *xctx)
void(* afw_data_type_utf8_to_internal_t)(const afw_data_type_t *instance, void *to_internal, const afw_utf8_t *from_utf8, const afw_pool_t *p, afw_xctx_t *xctx)
const afw_utf8_t *(* afw_data_type_internal_to_utf8_t)(const afw_data_type_t *instance, const void *from_internal, const afw_pool_t *p, afw_xctx_t *xctx)
void(* afw_extension_release_t)(const afw_extension_t *instance, afw_xctx_t *xctx)
Definition: afw_interface.h:77
const afw_extension_t *(* afw_extension_initialize_t)(const afw_extension_t *instance, const afw_object_t *properties, const afw_pool_t *p, afw_xctx_t *xctx)
Definition: afw_interface.h:69
const afw_list_setter_t *(* afw_list_get_setter_t)(const afw_list_t *instance, afw_xctx_t *xctx)
const afw_value_t *(* afw_list_get_next_entry_meta_t)(const afw_list_t *instance, const afw_iterator_t **iterator, const afw_pool_t *p, afw_xctx_t *xctx)
const afw_data_type_t *(* afw_list_get_data_type_t)(const afw_list_t *instance, afw_xctx_t *xctx)
const afw_value_t *(* afw_list_get_entry_value_t)(const afw_list_t *instance, afw_integer_t index, const afw_pool_t *p, afw_xctx_t *xctx)
const afw_value_t *(* afw_list_get_entry_meta_t)(const afw_list_t *instance, afw_integer_t index, const afw_pool_t *p, afw_xctx_t *xctx)
afw_boolean_t(* afw_list_get_next_internal_t)(const afw_list_t *instance, const afw_iterator_t **iterator, const afw_data_type_t **data_type, const void **internal, afw_xctx_t *xctx)
afw_boolean_t(* afw_list_get_entry_internal_t)(const afw_list_t *instance, afw_integer_t index, const afw_data_type_t **data_type, const void **internal, afw_xctx_t *xctx)
const afw_value_t *(* afw_list_get_next_value_t)(const afw_list_t *instance, const afw_iterator_t **iterator, const afw_pool_t *p, afw_xctx_t *xctx)
afw_size_t(* afw_list_get_count_t)(const afw_list_t *instance, afw_xctx_t *xctx)
void(* afw_list_release_t)(const afw_list_t *instance, afw_xctx_t *xctx)
void(* afw_list_setter_add_internal_t)(const afw_list_setter_t *instance, const afw_data_type_t *data_type, const void *internal, afw_xctx_t *xctx)
void(* afw_list_setter_insert_internal_t)(const afw_list_setter_t *instance, const afw_data_type_t *data_type, const void *internal, afw_size_t index, afw_xctx_t *xctx)
void(* afw_list_setter_add_value_t)(const afw_list_setter_t *instance, const afw_value_t *value, afw_xctx_t *xctx)
void(* afw_list_setter_remove_internal_t)(const afw_list_setter_t *instance, const afw_data_type_t *data_type, const void *internal, afw_xctx_t *xctx)
void(* afw_list_setter_remove_all_values_t)(const afw_list_setter_t *instance, afw_xctx_t *xctx)
void(* afw_list_setter_remove_value_t)(const afw_list_setter_t *instance, const afw_value_t *value, afw_xctx_t *xctx)
void(* afw_list_setter_set_immutable_t)(const afw_list_setter_t *instance, afw_xctx_t *xctx)
const afw_data_type_t *(* afw_list_setter_determine_data_type_and_set_immutable_t)(const afw_list_setter_t *instance, afw_xctx_t *xctx)
void(* afw_list_setter_set_value_by_index_t)(const afw_list_setter_t *instance, afw_size_t index, const afw_value_t *value, afw_xctx_t *xctx)
void(* afw_list_setter_insert_value_t)(const afw_list_setter_t *instance, const afw_value_t *value, afw_size_t index, afw_xctx_t *xctx)
const afw_log_t *(* afw_log_factory_create_log_cede_p_t)(const afw_log_factory_t *instance, const afw_object_t *properties, const afw_pool_t *p, afw_xctx_t *xctx)
void(* afw_log_set_own_mask_t)(const afw_log_t *instance, afw_log_priority_mask_t mask, afw_xctx_t *xctx)
void(* afw_log_destroy_t)(const afw_log_t *instance, afw_xctx_t *xctx)
void(* afw_log_write_t)(const afw_log_t *instance, afw_log_priority_t priority, const afw_utf8_z_t *source_z, const afw_utf8_t *message, afw_xctx_t *xctx)
void(* afw_object_associative_array_add_reference_t)(const afw_object_associative_array_t *instance, afw_xctx_t *xctx)
const afw_object_t *(* afw_object_associative_array_get_reference_t)(const afw_object_associative_array_t *instance, const afw_utf8_t *key, afw_xctx_t *xctx)
void(* afw_object_associative_array_release_t)(const afw_object_associative_array_t *instance, afw_xctx_t *xctx)
void(* afw_object_associative_array_for_each_t)(const afw_object_associative_array_t *instance, void *context, afw_object_cb_t cb, afw_xctx_t *xctx)
void(* afw_object_associative_array_set_t)(const afw_object_associative_array_t *instance, const afw_utf8_t *key, const afw_object_t *object, afw_xctx_t *xctx)
const afw_object_t *(* afw_object_associative_array_get_t)(const afw_object_associative_array_t *instance, const afw_utf8_t *key, afw_xctx_t *xctx)
afw_boolean_t(* afw_object_has_property_t)(const afw_object_t *instance, const afw_utf8_t *property_name, afw_xctx_t *xctx)
const afw_value_t *(* afw_object_get_meta_t)(const afw_object_t *instance, const afw_pool_t *p, afw_xctx_t *xctx)
afw_size_t(* afw_object_get_count_t)(const afw_object_t *instance, afw_xctx_t *xctx)
void(* afw_object_add_reference_t)(const afw_object_t *instance, afw_xctx_t *xctx)
void(* afw_object_release_t)(const afw_object_t *instance, afw_xctx_t *xctx)
const afw_object_setter_t *(* afw_object_get_setter_t)(const afw_object_t *instance, afw_xctx_t *xctx)
const afw_value_t *(* afw_object_get_property_t)(const afw_object_t *instance, const afw_utf8_t *property_name, afw_xctx_t *xctx)
const afw_value_t *(* afw_object_get_next_property_t)(const afw_object_t *instance, const afw_iterator_t **iterator, const afw_utf8_t **property_name, afw_xctx_t *xctx)
const afw_value_t *(* afw_object_get_property_meta_t)(const afw_object_t *instance, const afw_utf8_t *property_name, const afw_pool_t *p, afw_xctx_t *xctx)
const afw_value_t *(* afw_object_get_next_property_meta_t)(const afw_object_t *instance, const afw_iterator_t **iterator, const afw_utf8_t **property_name, const afw_pool_t *p, afw_xctx_t *xctx)
void(* afw_object_setter_set_immutable_t)(const afw_object_setter_t *instance, afw_xctx_t *xctx)
void(* afw_object_setter_set_property_t)(const afw_object_setter_t *instance, const afw_utf8_t *property_name, const afw_value_t *value, afw_xctx_t *xctx)
void(* afw_pool_destroy_t)(const afw_pool_t *instance, afw_xctx_t *xctx)
void *(* afw_pool_malloc_t)(const afw_pool_t *instance, afw_size_t size, afw_xctx_t *xctx)
void(* afw_pool_register_cleanup_before_debug_t)(const afw_pool_t *instance, void *data, void *data2, afw_pool_cleanup_function_p_t cleanup, afw_xctx_t *xctx, const afw_utf8_z_t *source_z)
void(* afw_pool_add_reference_t)(const afw_pool_t *instance, afw_xctx_t *xctx)
void(* afw_pool_add_reference_debug_t)(const afw_pool_t *instance, afw_xctx_t *xctx, const afw_utf8_z_t *source_z)
void(* afw_pool_deregister_cleanup_debug_t)(const afw_pool_t *instance, void *data, void *data2, afw_pool_cleanup_function_p_t cleanup, afw_xctx_t *xctx, const afw_utf8_z_t *source_z)
apr_pool_t *(* afw_pool_get_apr_pool_t)(const afw_pool_t *instance)
void *(* afw_pool_malloc_debug_t)(const afw_pool_t *instance, afw_size_t size, afw_xctx_t *xctx, const afw_utf8_z_t *source_z)
void(* afw_pool_deregister_cleanup_t)(const afw_pool_t *instance, void *data, void *data2, afw_pool_cleanup_function_p_t cleanup, afw_xctx_t *xctx)
void *(* afw_pool_calloc_debug_t)(const afw_pool_t *instance, afw_size_t size, afw_xctx_t *xctx, const afw_utf8_z_t *source_z)
void(* afw_pool_destroy_debug_t)(const afw_pool_t *instance, afw_xctx_t *xctx, const afw_utf8_z_t *source_z)
void *(* afw_pool_calloc_t)(const afw_pool_t *instance, afw_size_t size, afw_xctx_t *xctx)
void(* afw_pool_release_debug_t)(const afw_pool_t *instance, afw_xctx_t *xctx, const afw_utf8_z_t *source_z)
void(* afw_pool_free_debug_t)(const afw_pool_t *instance, void *address, afw_size_t size, afw_xctx_t *xctx, const afw_utf8_z_t *source_z)
void(* afw_pool_register_cleanup_before_t)(const afw_pool_t *instance, void *data, void *data2, afw_pool_cleanup_function_p_t cleanup, afw_xctx_t *xctx)
void(* afw_pool_release_t)(const afw_pool_t *instance, afw_xctx_t *xctx)
void(* afw_pool_free_t)(const afw_pool_t *instance, void *address, afw_size_t size, afw_xctx_t *xctx)
const afw_request_handler_t *(* afw_request_handler_factory_create_request_handler_cede_p_t)(const afw_request_handler_factory_t *instance, const afw_object_t *properties, const afw_pool_t *p, afw_xctx_t *xctx)
void(* afw_request_handler_release_t)(const afw_request_handler_t *instance, afw_xctx_t *xctx)
void(* afw_request_handler_process_t)(const afw_request_handler_t *instance, const afw_request_t *request, afw_xctx_t *xctx)
void(* afw_request_set_response_status_code_t)(const afw_request_t *instance, const afw_utf8_t *code, const afw_utf8_t *reason, afw_xctx_t *xctx)
void(* afw_request_read_raw_request_body_t)(const afw_request_t *instance, afw_size_t buffer_size, void *buffer, afw_size_t *size, afw_boolean_t *more_to_read, afw_xctx_t *xctx)
void(* afw_request_release_t)(const afw_request_t *instance, afw_xctx_t *xctx)
void(* afw_request_set_error_info_t)(const afw_request_t *instance, const afw_object_t *error_info, afw_xctx_t *xctx)
void(* afw_request_finish_response_t)(const afw_request_t *instance, afw_xctx_t *xctx)
void(* afw_request_write_response_header_t)(const afw_request_t *instance, const afw_utf8_t *name, const afw_utf8_t *value, afw_xctx_t *xctx)
void(* afw_request_write_raw_response_body_t)(const afw_request_t *instance, afw_size_t size, const void *buffer, afw_xctx_t *xctx)
void(* afw_request_flush_response_t)(const afw_request_t *instance, afw_xctx_t *xctx)
void(* afw_server_run_t)(const afw_server_t *instance, const afw_request_handler_t *handler, afw_xctx_t *xctx)
void(* afw_server_release_t)(const afw_server_t *instance, afw_xctx_t *xctx)
void(* afw_service_type_stop_t)(const afw_service_type_t *instance, const afw_utf8_t *id, afw_xctx_t *xctx)
void(* afw_service_type_start_cede_p_t)(const afw_service_type_t *instance, const afw_object_t *properties, const afw_pool_t *p, afw_xctx_t *xctx)
void(* afw_service_type_restart_cede_p_t)(const afw_service_type_t *instance, const afw_object_t *properties, const afw_pool_t *p, afw_xctx_t *xctx)
afw_integer_t(* afw_service_type_related_instance_count_t)(const afw_service_type_t *instance, const afw_utf8_t *id, afw_xctx_t *xctx)
void(* afw_stream_read_t)(const afw_stream_t *instance, const void *buffer, afw_size_t size, afw_xctx_t *xctx)
void(* afw_stream_write_t)(const afw_stream_t *instance, const void *buffer, afw_size_t size, afw_xctx_t *xctx)
void(* afw_stream_release_t)(const afw_stream_t *instance, afw_xctx_t *xctx)
void(* afw_stream_flush_t)(const afw_stream_t *instance, afw_xctx_t *xctx)
const afw_data_type_t *(* afw_value_get_data_type_t)(const afw_value_t *instance, afw_xctx_t *xctx)
void(* afw_value_get_info_t)(const afw_value_t *instance, afw_value_info_t *info, const afw_pool_t *p, afw_xctx_t *xctx)
const afw_utf8_t *(* afw_value_get_evaluated_data_type_parameter_t)(const afw_value_t *instance, afw_xctx_t *xctx)
const afw_value_t *(* afw_value_get_evaluated_meta_t)(const afw_value_t *instance, const afw_pool_t *p, afw_xctx_t *xctx)
const afw_value_t *(* afw_value_get_reference_t)(const afw_value_t *instance, const afw_pool_t *p, afw_xctx_t *xctx)
void(* afw_value_decompile_t)(const afw_value_t *instance, const afw_writer_t *writer, afw_xctx_t *xctx)
void(* afw_value_produce_compiler_listing_t)(const afw_value_t *instance, const afw_writer_t *writer, afw_xctx_t *xctx)
const afw_value_t *(* afw_value_optional_evaluate_t)(const afw_value_t *instance, const afw_pool_t *p, afw_xctx_t *xctx)
const afw_value_t *(* afw_value_get_evaluated_metas_t)(const afw_value_t *instance, const afw_pool_t *p, afw_xctx_t *xctx)
const afw_data_type_t *(* afw_value_get_evaluated_data_type_t)(const afw_value_t *instance, afw_xctx_t *xctx)
void(* afw_value_optional_release_t)(const afw_value_t *instance, afw_xctx_t *xctx)
afw_boolean_t(* afw_variable_handler_set_variable_t)(const afw_variable_handler_t *instance, const afw_utf8_t *qualifier, const afw_utf8_t *name, const afw_value_t *value, afw_xctx_t *xctx)
const afw_value_t *(* afw_variable_handler_get_variable_t)(const afw_variable_handler_t *instance, const afw_utf8_t *qualifier, const afw_utf8_t *name, afw_xctx_t *xctx)
void(* afw_writer_write_t)(const afw_writer_t *instance, const void *buffer, afw_size_t size, afw_xctx_t *xctx)
void(* afw_writer_release_t)(const afw_writer_t *instance, afw_xctx_t *xctx)
void(* afw_writer_increment_indent_t)(const afw_writer_t *instance, afw_xctx_t *xctx)
void(* afw_writer_write_eol_t)(const afw_writer_t *instance, afw_xctx_t *xctx)
void(* afw_writer_flush_t)(const afw_writer_t *instance, afw_xctx_t *xctx)
void(* afw_writer_decrement_indent_t)(const afw_writer_t *instance, afw_xctx_t *xctx)
void(* afw_xctx_release_t)(afw_xctx_t *instance, afw_xctx_t *xctx)
Interface afw_adaptor_factory_inf_s struct.
Interface afw_adaptor_factory public struct.
Interface afw_adaptor_impl_index_cursor_inf_s struct.
Interface afw_adaptor_impl_index_cursor public struct.
Interface afw_adaptor_impl_index_inf_s struct.
Interface afw_adaptor_impl_index public struct.
Internal request info used by afw_adaptor_impl*() functions.
Internal struct used by common adaptor code for all adaptors.
Interface afw_adaptor_inf_s struct.
Interface afw_adaptor_journal_inf_s struct.
Interface afw_adaptor_journal public struct.
Interface afw_adaptor_key_value_inf_s struct.
Interface afw_adaptor_key_value public struct.
Adaptor modify entry.
Interface afw_adaptor_object_type_cache_inf_s struct.
Interface afw_adaptor_object_type_cache public struct.
Interface afw_adaptor public struct.
Interface afw_adaptor_session_inf_s struct.
Interface afw_adaptor_session public struct.
Interface afw_adaptor_transaction_inf_s struct.
Interface afw_adaptor_transaction public struct.
Interface afw_authorization_handler_factory_inf_s struct.
Interface afw_authorization_handler_factory public struct.
Interface afw_authorization_handler_inf_s struct.
Interface afw_authorization_handler public struct.
Interface afw_connection_inf_s struct.
Interface afw_connection public struct.
Interface afw_content_type_inf_s struct.
Interface afw_content_type_object_list_writer_inf_s struct.
Interface afw_content_type_object_list_writer public struct.
Interface afw_content_type public struct.
Interface afw_data_type_inf_s struct.
Interface afw_data_type public struct.
date, time, and time zone.
Definition: afw_common.h:1760
Struct for afw environment conf type.
Struct for typedef afw_environment_t defined in afw_common.h.
Definition: afw_common.h:1383
Adaptive Framework Error.
Definition: afw_error.h:65
Interface afw_extension_inf_s struct.
Definition: afw_interface.h:82
Interface afw_extension public struct.
Definition: afw_interface.h:55
Interface Implementation Run Time Information.
Interface afw_list_inf_s struct.
Interface afw_list public struct.
Interface afw_list_setter_inf_s struct.
Interface afw_list_setter public struct.
Interface afw_log_factory_inf_s struct.
Interface afw_log_factory public struct.
Struct for afw_log_impl_t.
Definition: afw_log_impl.h:35
Interface afw_log_inf_s struct.
Interface afw_log public struct.
Struct for memory pointer and size.
Definition: afw_common.h:505
Interface afw_object_associative_array_inf_s struct.
Interface afw_object_associative_array public struct.
Interface afw_object_inf_s struct.
Typedef for meta variable in afw_object interface.
Definition: afw_common.h:753
Struct for object processing options.
Interface afw_object public struct.
Interface afw_object_setter_inf_s struct.
Interface afw_object_setter public struct.
Struct for afw_object_type_t.
Interface afw_pool_inf_s struct.
Interface afw_pool public struct.
Parsed filter entry from query string.
Parsed query criteria.
Interface afw_request_handler_factory_inf_s struct.
Interface afw_request_handler_factory public struct.
Interface afw_request_handler_inf_s struct.
Interface afw_request_handler public struct.
Interface afw_request_inf_s struct.
Interface afw_request public struct.
Interface afw_server_inf_s struct.
Interface afw_server public struct.
Interface afw_service_type_inf_s struct.
Interface afw_service_type public struct.
struct for common xctx streams
Definition: afw_stream.h:42
Interface afw_stream_inf_s struct.
Interface afw_stream public struct.
Struct for public part of afw_pool_t.
Definition: afw_thread.h:56
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_variable_handler_inf_s struct.
Interface afw_variable_handler public struct.
Interface afw_writer_inf_s struct.
Interface afw_writer public struct.
Interface afw_xctx_inf_s struct.
Interface afw_xctx public struct.