10 #ifndef CIB_INTERNAL__H    11 #  define CIB_INTERNAL__H    17 #define PCMK__CIB_REQUEST_SECONDARY     "cib_slave"    18 #define PCMK__CIB_REQUEST_ALL_SECONDARY "cib_slave_all"    19 #define PCMK__CIB_REQUEST_PRIMARY       "cib_master"    20 #define PCMK__CIB_REQUEST_SYNC_TO_ALL   "cib_sync"    21 #define PCMK__CIB_REQUEST_SYNC_TO_ONE   "cib_sync_one"    22 #define PCMK__CIB_REQUEST_IS_PRIMARY    "cib_ismaster"    23 #define PCMK__CIB_REQUEST_BUMP          "cib_bump"    24 #define PCMK__CIB_REQUEST_QUERY         "cib_query"    25 #define PCMK__CIB_REQUEST_CREATE        "cib_create"    26 #define PCMK__CIB_REQUEST_MODIFY        "cib_modify"    27 #define PCMK__CIB_REQUEST_DELETE        "cib_delete"    28 #define PCMK__CIB_REQUEST_ERASE         "cib_erase"    29 #define PCMK__CIB_REQUEST_REPLACE       "cib_replace"    30 #define PCMK__CIB_REQUEST_APPLY_PATCH   "cib_apply_diff"    31 #define PCMK__CIB_REQUEST_UPGRADE       "cib_upgrade"    32 #define PCMK__CIB_REQUEST_ABS_DELETE    "cib_delete_alt"    33 #define PCMK__CIB_REQUEST_NOOP          "noop"    34 #define PCMK__CIB_REQUEST_SHUTDOWN      "cib_shutdown_req"    36 #  define F_CIB_CLIENTID  "cib_clientid"    37 #  define F_CIB_CALLOPTS  "cib_callopt"    38 #  define F_CIB_CALLID    "cib_callid"    39 #  define F_CIB_CALLDATA  "cib_calldata"    40 #  define F_CIB_OPERATION "cib_op"    41 #  define F_CIB_ISREPLY   "cib_isreplyto"    42 #  define F_CIB_SECTION   "cib_section"    43 #  define F_CIB_HOST    "cib_host"    44 #  define F_CIB_RC  "cib_rc"    45 #  define F_CIB_UPGRADE_RC      "cib_upgrade_rc"    46 #  define F_CIB_DELEGATED   "cib_delegated_from"    47 #  define F_CIB_OBJID   "cib_object"    48 #  define F_CIB_OBJTYPE "cib_object_type"    49 #  define F_CIB_EXISTING    "cib_existing_object"    50 #  define F_CIB_SEENCOUNT   "cib_seen"    51 #  define F_CIB_TIMEOUT "cib_timeout"    52 #  define F_CIB_UPDATE  "cib_update"    53 #  define F_CIB_CALLBACK_TOKEN  "cib_async_id"    54 #  define F_CIB_GLOBAL_UPDATE   "cib_update"    55 #  define F_CIB_UPDATE_RESULT   "cib_update_result"    56 #  define F_CIB_CLIENTNAME  "cib_clientname"    57 #  define F_CIB_NOTIFY_TYPE "cib_notify_type"    58 #  define F_CIB_NOTIFY_ACTIVATE "cib_notify_activate"    59 #  define F_CIB_UPDATE_DIFF "cib_update_diff"    60 #  define F_CIB_USER        "cib_user"    61 #  define F_CIB_LOCAL_NOTIFY_ID "cib_local_notify_id"    62 #  define F_CIB_PING_ID         "cib_ping_id"    63 #  define F_CIB_SCHEMA_MAX      "cib_schema_max"    64 #  define F_CIB_CHANGE_SECTION  "cib_change_section"    67 #  define T_CIB_NOTIFY      "cib_notify"    69 #  define T_CIB_PRE_NOTIFY  "cib_pre_notify"    70 #  define T_CIB_POST_NOTIFY "cib_post_notify"    71 #  define T_CIB_UPDATE_CONFIRM  "cib_update_confirmation"    72 #  define T_CIB_REPLACE_NOTIFY  "cib_refresh_notify"    88                                   int *_admin_epoch, 
int *_epoch, 
int *_updates);
   103     void (*
callback) (xmlNode *, int, int, xmlNode *, 
void *);
   118 #define cib__set_call_options(cib_call_opts, call_for, flags_to_set) do {   \   119         cib_call_opts = pcmk__set_flags_as(__func__, __LINE__,              \   120             LOG_TRACE, "CIB call", (call_for), (cib_call_opts),             \   121             (flags_to_set), #flags_to_set); \   124 #define cib__clear_call_options(cib_call_opts, call_for, flags_to_clear) do {  \   125         cib_call_opts = pcmk__clear_flags_as(__func__, __LINE__,               \   126             LOG_TRACE, "CIB call", (call_for), (cib_call_opts),                \   127             (flags_to_clear), #flags_to_clear);                                \   130 typedef int (*
cib_op_t) (
const char *, int, 
const char *, xmlNode *,
   131                          xmlNode *, xmlNode *, xmlNode **, xmlNode **);
   136                    const char *section, xmlNode * req, xmlNode * 
input,
   137                    gboolean manage_counters, gboolean * config_changed,
   138                    xmlNode * current_cib, xmlNode ** result_cib, xmlNode ** diff,
   141 xmlNode *
cib_create_op(
int call_id, 
const char *token, 
const char *op, 
const char *
host,
   142                        const char *section, xmlNode * 
data, 
int call_options,
   143                        const char *user_name);
   149                                       void *user_data, 
const char *callback_name,
   150                                       void (*callback) (xmlNode *, 
int, 
int, xmlNode *, 
void *));
   152                                            int timeout, gboolean only_success,
   154                                            const char *callback_name,
   155                                            void (*callback)(xmlNode *, 
int, 
int,
   157                                            void (*free_func)(
void *));
   159 int cib_process_query(
const char *op, 
int options, 
const char *section, xmlNode * req,
   160                       xmlNode * 
input, xmlNode * existing_cib, xmlNode ** result_cib,
   163 int cib_process_erase(
const char *op, 
int options, 
const char *section, xmlNode * req,
   164                       xmlNode * 
input, xmlNode * existing_cib, xmlNode ** result_cib,
   167 int cib_process_bump(
const char *op, 
int options, 
const char *section, xmlNode * req,
   168                      xmlNode * 
input, xmlNode * existing_cib, xmlNode ** result_cib,
   172                         xmlNode * 
input, xmlNode * existing_cib, xmlNode ** result_cib,
   175 int cib_process_create(
const char *op, 
int options, 
const char *section, xmlNode * req,
   176                        xmlNode * 
input, xmlNode * existing_cib, xmlNode ** result_cib,
   179 int cib_process_modify(
const char *op, 
int options, 
const char *section, xmlNode * req,
   180                        xmlNode * 
input, xmlNode * existing_cib, xmlNode ** result_cib,
   183 int cib_process_delete(
const char *op, 
int options, 
const char *section, xmlNode * req,
   184                        xmlNode * 
input, xmlNode * existing_cib, xmlNode ** result_cib,
   187 int cib_process_diff(
const char *op, 
int options, 
const char *section, xmlNode * req,
   188                      xmlNode * 
input, xmlNode * existing_cib, xmlNode ** result_cib,
   192                         xmlNode * 
input, xmlNode * existing_cib, xmlNode ** result_cib,
   218                       const xmlNode *req, xmlNode *
input, xmlNode *existing_cib,
   219                       xmlNode **result_cib, xmlNode ** answer);
   222 gboolean 
update_results(xmlNode * failed, xmlNode * 
target, 
const char *operation, 
int return_code);
   226                     const char *section, xmlNode * 
data,
   227                     xmlNode ** output_data, 
int call_options, 
const char *user_name);
   233                                const char *cib_filename);
   256                           const char *section, 
const char *node_uuid, 
const char *set_type,
   257                           const char *set_name, 
const char *attr_id, 
const char *attr_name,
   258                           const char *attr_value, 
const char *user_name,
   262                         const char *node_uuid, 
const char *set_type, 
const char *set_name,
   263                         const char *attr_id, 
const char *attr_name, 
const char *user_name,
   267                           const char *section, 
const char *node_uuid, 
const char *set_type,
   268                           const char *set_name, 
const char *attr_id, 
const char *attr_name,
   269                           const char *attr_value, 
const char *user_name);
 
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)
 
The alerts section has changed. 
 
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)
 
The nodes section has changed. 
 
int cib_update_counter(xmlNode *xml_obj, const char *field, gboolean reset)
 
struct cib_notify_client_s cib_notify_client_t
 
int cib__delete_node_attr(pcmk__output_t *out, cib_t *cib, int options, const char *section, const char *node_uuid, const char *set_type, const char *set_name, const char *attr_id, const char *attr_name, const char *attr_value, const char *user_name)
 
cib_callback_client_t * cib__lookup_id(int call_id)
 
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)
 
int cib__get_node_attrs(pcmk__output_t *out, cib_t *cib, const char *section, const char *node_uuid, const char *set_type, const char *set_name, const char *attr_id, const char *attr_name, const char *user_name, xmlNode **result)
 
int cib__signon_query(cib_t **cib, xmlNode **cib_object)
 
The status section has changed. 
 
cib_t * cib_new_variant(void)
 
struct timer_rec_s * timer
 
Formatted output for pacemaker tools. 
 
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)
 
void(* callback)(xmlNode *, int, int, xmlNode *, void *)
 
void cib__set_output(cib_t *cib, pcmk__output_t *out)
 
int cib__clean_up_connection(cib_t **cib)
 
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)
 
pcmk__action_result_t result
 
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)
 
This structure contains everything that makes up a single output formatter. 
 
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)
 
int cib__update_node_attr(pcmk__output_t *out, cib_t *cib, int call_options, const char *section, const char *node_uuid, const char *set_type, const char *set_name, const char *attr_id, const char *attr_name, const char *attr_value, const char *user_name, const char *node_type)
 
int cib_process_xpath(const char *op, int options, const char *section, const xmlNode *req, xmlNode *input, xmlNode *existing_cib, xmlNode **result_cib, xmlNode **answer)
 
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)
 
void(* free_func)(void *)
 
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)
 
No sections have changed.