Adaptive Framework  0.9.0
All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Modules Pages
afw_adaptor_modify.h
Go to the documentation of this file.
1 // See the 'COPYING' file in the project root for licensing information.
2 /*
3  * Adaptive Framework Adaptor Modify Object
4  *
5  * Copyright (c) 2010-2023 Clemson University
6  *
7  */
8 
9 #ifndef __AFW_ADAPTOR_MODIFY_H__
10 #define __AFW_ADAPTOR_MODIFY_H__
11 
12 #include "afw_interface.h"
13 
25 
31 #define AFW_ADAPTOR_MODIFY_ENTRY_TYPE_MAP(XX) \
32  XX(add_value, true) \
33  XX(remove_property, false) \
34  XX(remove_value, true) \
35  XX(set_property, true) \
36 
37 
40 #define XX(id, _) afw_adaptor_modify_entry_type_ ## id,
42 #undef XX
43  afw_adaptor_modify_entry_type_invalid
45 
46 
47 
50 
53 
56 
59 };
60 
61 
62 
77 AFW_DECLARE(void)
79  const afw_utf8_t *adaptor_id,
80  const afw_utf8_t *object_type_id,
81  const afw_utf8_t *object_id,
82  const afw_list_t *entries,
83  const afw_object_t *journal_entry,
84  const afw_object_t *adaptor_type_specific,
85  afw_xctx_t *xctx);
86 
87 
112 AFW_DECLARE(void)
114  const afw_utf8_t *adaptor_id,
115  const afw_utf8_t *object_type_id,
116  const afw_utf8_t *object_id,
117  const afw_object_t *update_object,
118  const afw_object_t *journal_entry,
119  const afw_object_t *adaptor_type_specific,
120  afw_xctx_t *xctx);
121 
122 
130 
131 
137 AFW_DECLARE(const afw_utf8_t *)
139 
140 
146 AFW_DECLARE(const afw_value_t *)
148 
149 
209  const afw_list_t *list, const afw_pool_t *p, afw_xctx_t *xctx);
210 
211 
219 AFW_DECLARE(const afw_list_t *)
221  const afw_adaptor_modify_entry_t * const *entries,
222  const afw_pool_t *p, afw_xctx_t *xctx);
223 
224 
225 
244 AFW_DECLARE(void)
246  const afw_adaptor_modify_entry_t * const *entries,
247  const afw_object_t *object,
248  afw_xctx_t *xctx);
249 
250 
268 AFW_DECLARE(void)
270  const afw_utf8_t * *adaptor_id,
271  const afw_utf8_t * *object_type_id,
272  const afw_utf8_t * *object_id,
273  const afw_list_t * *entries,
274  const afw_object_t *original,
275  const afw_object_t *modified,
276  const afw_object_t *journal_entry,
277  const afw_pool_t *p, afw_xctx_t *xctx);
278 
279 
280 AFW_END_DECLARES
281 
284 #endif /* __AFW_ADAPTOR_MODIFY_H__ */
#define AFW_BEGIN_DECLARES
#define AFW_DECLARE(type)
Declare a public afw function.
Interfaceafw_interface header.
void afw_adaptor_modify_using_update_object(const afw_utf8_t *adaptor_id, const afw_utf8_t *object_type_id, const afw_utf8_t *object_id, const afw_object_t *update_object, const afw_object_t *journal_entry, const afw_object_t *adaptor_type_specific, afw_xctx_t *xctx)
Modify using update object and remove from cache.
void afw_adaptor_modify_entries_apply_to_unnormalized_object(const afw_adaptor_modify_entry_t *const *entries, const afw_object_t *object, afw_xctx_t *xctx)
Apply modify entries to an unnormalized object.
const afw_value_t * afw_adaptor_modify_entry_type_value(afw_adaptor_modify_entry_type_t type)
Convert entry type enum to value.
const afw_adaptor_modify_entry_t *const * afw_adaptor_modify_entries_from_list(const afw_list_t *list, const afw_pool_t *p, afw_xctx_t *xctx)
Create modify entries from list of tuple lists in specified pool.
const afw_utf8_t * afw_adaptor_modify_entry_type_mnemonic(afw_adaptor_modify_entry_type_t type)
Convert entry type enum to mnemonic.
void afw_adaptor_modify_needed_to_reconcile(const afw_utf8_t **adaptor_id, const afw_utf8_t **object_type_id, const afw_utf8_t **object_id, const afw_list_t **entries, const afw_object_t *original, const afw_object_t *modified, const afw_object_t *journal_entry, const afw_pool_t *p, afw_xctx_t *xctx)
Produce modify needed to reconcile two objects.
afw_adaptor_modify_entry_type_t afw_adaptor_modify_entry_type(const afw_utf8_t *mnemonic)
Convert entry type mnemonic to enum.
void afw_adaptor_modify_object(const afw_utf8_t *adaptor_id, const afw_utf8_t *object_type_id, const afw_utf8_t *object_id, const afw_list_t *entries, const afw_object_t *journal_entry, const afw_object_t *adaptor_type_specific, afw_xctx_t *xctx)
Modify object and remove from cache.
#define AFW_ADAPTOR_MODIFY_ENTRY_TYPE_MAP(XX)
Adaptor session modify type map.
afw_adaptor_modify_entry_type_e
Adaptor session modify type enum.
enum afw_adaptor_modify_entry_type_e afw_adaptor_modify_entry_type_t
Adaptor session modify type enum.
const afw_list_t * afw_adaptor_modify_entries_to_list(const afw_adaptor_modify_entry_t *const *entries, const afw_pool_t *p, afw_xctx_t *xctx)
Create a list from modify entries in specified pool.
Adaptor modify entry.
afw_adaptor_modify_entry_type_t type
Modify type.
const afw_value_t * value
Associated value.
const afw_object_path_property_name_entry_t * first_property_name_entry
First entry in property name list.
Interface afw_list public struct.
Property name path struct.
Interface afw_object public struct.
Interface afw_pool public struct.
NFC normalized UTF-8 string.
Definition: afw_common.h:545
Interface afw_value public struct.
Interface afw_xctx public struct.