8 #ifndef CIB_INTERNAL__H 9 # define CIB_INTERNAL__H 13 # define CIB_OP_SLAVE "cib_slave" 14 # define CIB_OP_SLAVEALL "cib_slave_all" 15 # define CIB_OP_MASTER "cib_master" 16 # define CIB_OP_SYNC "cib_sync" 17 # define CIB_OP_SYNC_ONE "cib_sync_one" 18 # define CIB_OP_ISMASTER "cib_ismaster" 19 # define CIB_OP_BUMP "cib_bump" 20 # define CIB_OP_QUERY "cib_query" 21 # define CIB_OP_CREATE "cib_create" 22 # define CIB_OP_MODIFY "cib_modify" 23 # define CIB_OP_DELETE "cib_delete" 24 # define CIB_OP_ERASE "cib_erase" 25 # define CIB_OP_REPLACE "cib_replace" 26 # define CIB_OP_APPLY_DIFF "cib_apply_diff" 27 # define CIB_OP_UPGRADE "cib_upgrade" 28 # define CIB_OP_DELETE_ALT "cib_delete_alt" 30 # define F_CIB_CLIENTID "cib_clientid" 31 # define F_CIB_CALLOPTS "cib_callopt" 32 # define F_CIB_CALLID "cib_callid" 33 # define F_CIB_CALLDATA "cib_calldata" 34 # define F_CIB_OPERATION "cib_op" 35 # define F_CIB_ISREPLY "cib_isreplyto" 36 # define F_CIB_SECTION "cib_section" 37 # define F_CIB_HOST "cib_host" 38 # define F_CIB_RC "cib_rc" 39 # define F_CIB_UPGRADE_RC "cib_upgrade_rc" 40 # define F_CIB_DELEGATED "cib_delegated_from" 41 # define F_CIB_OBJID "cib_object" 42 # define F_CIB_OBJTYPE "cib_object_type" 43 # define F_CIB_EXISTING "cib_existing_object" 44 # define F_CIB_SEENCOUNT "cib_seen" 45 # define F_CIB_TIMEOUT "cib_timeout" 46 # define F_CIB_UPDATE "cib_update" 47 # define F_CIB_CALLBACK_TOKEN "cib_async_id" 48 # define F_CIB_GLOBAL_UPDATE "cib_update" 49 # define F_CIB_UPDATE_RESULT "cib_update_result" 50 # define F_CIB_CLIENTNAME "cib_clientname" 51 # define F_CIB_NOTIFY_TYPE "cib_notify_type" 52 # define F_CIB_NOTIFY_ACTIVATE "cib_notify_activate" 53 # define F_CIB_UPDATE_DIFF "cib_update_diff" 54 # define F_CIB_USER "cib_user" 55 # define F_CIB_LOCAL_NOTIFY_ID "cib_local_notify_id" 56 # define F_CIB_PING_ID "cib_ping_id" 57 # define F_CIB_SCHEMA_MAX "cib_schema_max" 60 # define T_CIB_NOTIFY "cib_notify" 62 # define T_CIB_PRE_NOTIFY "cib_pre_notify" 63 # define T_CIB_POST_NOTIFY "cib_post_notify" 64 # define T_CIB_UPDATE_CONFIRM "cib_update_confirmation" 65 # define T_CIB_REPLACE_NOTIFY "cib_refresh_notify" 67 # define CIB_CHANNEL_RO "cib_ro" 68 # define CIB_CHANNEL_RW "cib_rw" 69 # define CIB_CHANNEL_SHM "cib_shm" 72 int *_admin_epoch,
int *_epoch,
int *_updates);
88 void (*
callback) (xmlNode *, int, int, xmlNode *,
void *);
93 void (*free_func)(
void *);
103 typedef int (*
cib_op_t) (
const char *, int,
const char *, xmlNode *,
104 xmlNode *, xmlNode *, xmlNode **, xmlNode **);
109 const char *section, xmlNode * req, xmlNode * input,
110 gboolean manage_counters, gboolean * config_changed,
111 xmlNode * current_cib, xmlNode ** result_cib, xmlNode ** diff,
114 xmlNode *
cib_create_op(
int call_id,
const char *token,
const char *op,
const char *
host,
115 const char *section, xmlNode *
data,
int call_options,
116 const char *user_name);
122 void *user_data,
const char *callback_name,
123 void (*
callback) (xmlNode *,
int,
int, xmlNode *,
void *));
125 int timeout, gboolean only_success,
127 const char *callback_name,
128 void (*
callback)(xmlNode *,
int,
int,
130 void (*free_func)(
void *));
132 int cib_process_query(
const char *op,
int options,
const char *section, xmlNode * req,
133 xmlNode * input, xmlNode * existing_cib, xmlNode ** result_cib,
136 int cib_process_erase(
const char *op,
int options,
const char *section, xmlNode * req,
137 xmlNode * input, xmlNode * existing_cib, xmlNode ** result_cib,
140 int cib_process_bump(
const char *op,
int options,
const char *section, xmlNode * req,
141 xmlNode * input, xmlNode * existing_cib, xmlNode ** result_cib,
145 xmlNode * input, xmlNode * existing_cib, xmlNode ** result_cib,
148 int cib_process_create(
const char *op,
int options,
const char *section, xmlNode * req,
149 xmlNode * input, xmlNode * existing_cib, xmlNode ** result_cib,
152 int cib_process_modify(
const char *op,
int options,
const char *section, xmlNode * req,
153 xmlNode * input, xmlNode * existing_cib, xmlNode ** result_cib,
156 int cib_process_delete(
const char *op,
int options,
const char *section, xmlNode * req,
157 xmlNode * input, xmlNode * existing_cib, xmlNode ** result_cib,
160 int cib_process_diff(
const char *op,
int options,
const char *section, xmlNode * req,
161 xmlNode * input, xmlNode * existing_cib, xmlNode ** result_cib,
165 xmlNode * input, xmlNode * existing_cib, xmlNode ** result_cib,
187 int cib_process_xpath(
const char *op,
int options,
const char *section, xmlNode * req,
188 xmlNode * input, xmlNode * existing_cib, xmlNode ** result_cib,
192 gboolean
update_results(xmlNode * failed, xmlNode * target,
const char *operation,
int return_code);
196 const char *section, xmlNode *
data,
197 xmlNode ** output_data,
int call_options,
const char *user_name);
203 const char *cib_filename);
gboolean update_results(xmlNode *failed, xmlNode *target, const char *operation, int return_code)
int cib_process_delete(const char *op, int options, const char *section, xmlNode *req, xmlNode *input, xmlNode *existing_cib, xmlNode **result_cib, xmlNode **answer)
gboolean cib_client_register_callback_full(cib_t *cib, int call_id, int timeout, gboolean only_success, void *user_data, const char *callback_name, void(*callback)(xmlNode *, int, int, xmlNode *, void *), void(*free_func)(void *))
int cib_process_replace(const char *op, int options, const char *section, xmlNode *req, xmlNode *input, xmlNode *existing_cib, xmlNode **result_cib, xmlNode **answer)
void(* callback)(const char *event, xmlNode *msg)
int cib_process_erase(const char *op, int options, const char *section, xmlNode *req, xmlNode *input, xmlNode *existing_cib, xmlNode **result_cib, xmlNode **answer)
int cib_process_bump(const char *op, int options, const char *section, xmlNode *req, xmlNode *input, xmlNode *existing_cib, xmlNode **result_cib, xmlNode **answer)
int cib_update_counter(xmlNode *xml_obj, const char *field, gboolean reset)
struct cib_notify_client_s cib_notify_client_t
int cib_process_xpath(const char *op, int options, const char *section, xmlNode *req, xmlNode *input, xmlNode *existing_cib, xmlNode **result_cib, xmlNode **answer)
xmlNode * cib_create_op(int call_id, const char *token, const char *op, const char *host, const char *section, xmlNode *data, int call_options, const char *user_name)
void cib_native_notify(gpointer data, gpointer user_data)
cib_t * cib_new_variant(void)
struct timer_rec_s * timer
int cib_process_diff(const char *op, int options, const char *section, xmlNode *req, xmlNode *input, xmlNode *existing_cib, xmlNode **result_cib, xmlNode **answer)
gboolean cib_config_changed(xmlNode *last, xmlNode *next, xmlNode **diff)
gboolean cib_internal_config_changed(xmlNode *diff)
int(* cib_op_t)(const char *, int, const char *, xmlNode *, xmlNode *, xmlNode *, xmlNode **, xmlNode **)
int cib_native_register_notification(cib_t *cib, const char *callback, int enabled)
GHashTable * cib_op_callback_table
int cib_process_query(const char *op, int options, const char *section, xmlNode *req, xmlNode *input, xmlNode *existing_cib, xmlNode **result_cib, xmlNode **answer)
int cib_file_write_with_digest(xmlNode *cib_root, const char *cib_dirname, const char *cib_filename)
gboolean cib_read_config(GHashTable *options, xmlNode *current_cib)
int cib_file_read_and_verify(const char *filename, const char *sigfile, xmlNode **root)
gboolean cib_diff_version_details(xmlNode *diff, int *admin_epoch, int *epoch, int *updates, int *_admin_epoch, int *_epoch, int *_updates)
void verify_cib_options(GHashTable *options)
int cib_perform_op(const char *op, int call_options, cib_op_t *fn, gboolean is_query, const char *section, xmlNode *req, xmlNode *input, gboolean manage_counters, gboolean *config_changed, xmlNode *current_cib, xmlNode **result_cib, xmlNode **diff, xmlNode **output)
void cib_native_callback(cib_t *cib, xmlNode *msg, int call_id, int rc)
gboolean cib_client_register_callback(cib_t *cib, int call_id, int timeout, gboolean only_success, void *user_data, const char *callback_name, void(*callback)(xmlNode *, int, int, xmlNode *, void *))
int cib_internal_op(cib_t *cib, const char *op, const char *host, const char *section, xmlNode *data, xmlNode **output_data, int call_options, const char *user_name)
int cib_process_upgrade(const char *op, int options, const char *section, xmlNode *req, xmlNode *input, xmlNode *existing_cib, xmlNode **result_cib, xmlNode **answer)
int cib_process_modify(const char *op, int options, const char *section, xmlNode *req, xmlNode *input, xmlNode *existing_cib, xmlNode **result_cib, xmlNode **answer)
struct cib_callback_client_s cib_callback_client_t
int cib_process_create(const char *op, int options, const char *section, xmlNode *req, xmlNode *input, xmlNode *existing_cib, xmlNode **result_cib, xmlNode **answer)