18 #ifndef CIB_INTERNAL__H 
   19 #  define CIB_INTERNAL__H 
   23 #  define CIB_OP_SLAVE  "cib_slave" 
   24 #  define CIB_OP_SLAVEALL   "cib_slave_all" 
   25 #  define CIB_OP_MASTER "cib_master" 
   26 #  define CIB_OP_SYNC   "cib_sync" 
   27 #  define CIB_OP_SYNC_ONE   "cib_sync_one" 
   28 #  define CIB_OP_ISMASTER   "cib_ismaster" 
   29 #  define CIB_OP_BUMP   "cib_bump" 
   30 #  define CIB_OP_QUERY  "cib_query" 
   31 #  define CIB_OP_CREATE "cib_create" 
   32 #  define CIB_OP_UPDATE "cib_update" 
   33 #  define CIB_OP_MODIFY "cib_modify" 
   34 #  define CIB_OP_DELETE "cib_delete" 
   35 #  define CIB_OP_ERASE  "cib_erase" 
   36 #  define CIB_OP_REPLACE    "cib_replace" 
   37 #  define CIB_OP_APPLY_DIFF "cib_apply_diff" 
   38 #  define CIB_OP_UPGRADE    "cib_upgrade" 
   39 #  define CIB_OP_UPGRADE_OK "cib_upgrade_ok" 
   40 #  define CIB_OP_DELETE_ALT "cib_delete_alt" 
   41 #  define CIB_OP_NOTIFY       "cib_notify" 
   43 #  define F_CIB_CLIENTID  "cib_clientid" 
   44 #  define F_CIB_CALLOPTS  "cib_callopt" 
   45 #  define F_CIB_CALLID    "cib_callid" 
   46 #  define F_CIB_CALLDATA  "cib_calldata" 
   47 #  define F_CIB_OPERATION "cib_op" 
   48 #  define F_CIB_ISREPLY   "cib_isreplyto" 
   49 #  define F_CIB_SECTION   "cib_section" 
   50 #  define F_CIB_HOST    "cib_host" 
   51 #  define F_CIB_RC  "cib_rc" 
   52 #  define F_CIB_DELEGATED   "cib_delegated_from" 
   53 #  define F_CIB_OBJID   "cib_object" 
   54 #  define F_CIB_OBJTYPE "cib_object_type" 
   55 #  define F_CIB_EXISTING    "cib_existing_object" 
   56 #  define F_CIB_SEENCOUNT   "cib_seen" 
   57 #  define F_CIB_TIMEOUT "cib_timeout" 
   58 #  define F_CIB_UPDATE  "cib_update" 
   59 #  define F_CIB_CALLBACK_TOKEN  "cib_async_id" 
   60 #  define F_CIB_GLOBAL_UPDATE   "cib_update" 
   61 #  define F_CIB_UPDATE_RESULT   "cib_update_result" 
   62 #  define F_CIB_CLIENTNAME  "cib_clientname" 
   63 #  define F_CIB_NOTIFY_TYPE "cib_notify_type" 
   64 #  define F_CIB_NOTIFY_ACTIVATE "cib_notify_activate" 
   65 #  define F_CIB_UPDATE_DIFF "cib_update_diff" 
   66 #  define F_CIB_USER        "cib_user" 
   67 #  define F_CIB_LOCAL_NOTIFY_ID "cib_local_notify_id" 
   68 #  define F_CIB_PING_ID         "cib_ping_id" 
   69 #  define F_CIB_SCHEMA_MAX      "cib_schema_max" 
   72 #  define T_CIB_NOTIFY      "cib_notify" 
   74 #  define T_CIB_PRE_NOTIFY  "cib_pre_notify" 
   75 #  define T_CIB_POST_NOTIFY "cib_post_notify" 
   76 #  define T_CIB_UPDATE_CONFIRM  "cib_update_confirmation" 
   77 #  define T_CIB_REPLACE_NOTIFY  "cib_refresh_notify" 
   79 #  define cib_channel_ro        "cib_ro" 
   80 #  define cib_channel_rw        "cib_rw" 
   81 #  define cib_channel_shm       "cib_shm" 
   84 void fix_cib_diff(xmlNode * last, xmlNode * next, xmlNode * local_diff, gboolean changed);
 
   86                                   int *_admin_epoch, 
int *_epoch, 
int *_updates);
 
   88 gboolean 
startCib(
const char *filename);
 
  104     void (*
callback) (xmlNode *, int, int, xmlNode *, 
void *);
 
  119 typedef int (*
cib_op_t) (
const char *, int, 
const char *, xmlNode *,
 
  120                          xmlNode *, xmlNode *, xmlNode **, xmlNode **);
 
  125                    const char *section, xmlNode * req, xmlNode * input,
 
  126                    gboolean manage_counters, gboolean * config_changed,
 
  127                    xmlNode * current_cib, xmlNode ** result_cib, xmlNode ** diff,
 
  130 xmlNode *
cib_create_op(
int call_id, 
const char *token, 
const char *op, 
const char *
host,
 
  131                        const char *section, xmlNode * 
data, 
int call_options,
 
  132                        const char *user_name);
 
  138                                       void *user_data, 
const char *callback_name,
 
  139                                       void (*callback) (xmlNode *, 
int, 
int, xmlNode *, 
void *));
 
  141                                            int timeout, gboolean only_success,
 
  143                                            const char *callback_name,
 
  144                                            void (*callback)(xmlNode *, 
int, 
int,
 
  146                                            void (*free_func)(
void *));
 
  148 int cib_process_query(
const char *op, 
int options, 
const char *section, xmlNode * req,
 
  149                       xmlNode * input, xmlNode * existing_cib, xmlNode ** result_cib,
 
  152 int cib_process_erase(
const char *op, 
int options, 
const char *section, xmlNode * req,
 
  153                       xmlNode * input, xmlNode * existing_cib, xmlNode ** result_cib,
 
  156 int cib_process_bump(
const char *op, 
int options, 
const char *section, xmlNode * req,
 
  157                      xmlNode * input, xmlNode * existing_cib, xmlNode ** result_cib,
 
  161                         xmlNode * input, xmlNode * existing_cib, xmlNode ** result_cib,
 
  164 int cib_process_create(
const char *op, 
int options, 
const char *section, xmlNode * req,
 
  165                        xmlNode * input, xmlNode * existing_cib, xmlNode ** result_cib,
 
  168 int cib_process_modify(
const char *op, 
int options, 
const char *section, xmlNode * req,
 
  169                        xmlNode * input, xmlNode * existing_cib, xmlNode ** result_cib,
 
  172 int cib_process_delete(
const char *op, 
int options, 
const char *section, xmlNode * req,
 
  173                        xmlNode * input, xmlNode * existing_cib, xmlNode ** result_cib,
 
  176 int cib_process_diff(
const char *op, 
int options, 
const char *section, xmlNode * req,
 
  177                      xmlNode * input, xmlNode * existing_cib, xmlNode ** result_cib,
 
  181                         xmlNode * input, xmlNode * existing_cib, xmlNode ** result_cib,
 
  203 int cib_process_xpath(
const char *op, 
int options, 
const char *section, xmlNode * req,
 
  204                       xmlNode * input, xmlNode * existing_cib, xmlNode ** result_cib,
 
  208 gboolean 
update_results(xmlNode * failed, xmlNode * target, 
const char *operation, 
int return_code);
 
  212                     const char *section, xmlNode * 
data,
 
  213                     xmlNode ** output_data, 
int call_options, 
const char *user_name);
 
  219                                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 fix_cib_diff(xmlNode *last, xmlNode *next, xmlNode *local_diff, gboolean changed)
 
int(* cib_op_t)(const char *, int, const char *, xmlNode *, xmlNode *, xmlNode *, xmlNode **, xmlNode **)
 
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
 
gboolean startCib(const char *filename)
 
int cib_process_xpath(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)
 
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)
 
void(* callback)(xmlNode *, int, int, xmlNode *, 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_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)
 
int cib_compare_generation(xmlNode *left, xmlNode *right)
 
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(* free_func)(void *)
 
void cib_native_callback(cib_t *cib, xmlNode *msg, int call_id, int rc)
 
void cib_add_digest(xmlNode *source, xmlNode *target)
 
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)