/* * Copyright 2008-2023 the Pacemaker project contributors * * The version control history for this file may have further details. * * This source code is licensed under the GNU General Public License version 2 * or later (GPLv2+) WITHOUT ANY WARRANTY. */ #include #include #include #include #include static const cib__op_fn_t cib_op_functions[] = { [cib__op_abs_delete] = cib_process_delete_absolute, [cib__op_apply_patch] = cib_server_process_diff, [cib__op_bump] = cib_process_bump, [cib__op_commit_transact] = cib_process_commit_transaction, [cib__op_create] = cib_process_create, [cib__op_delete] = cib_process_delete, [cib__op_erase] = cib_process_erase, [cib__op_is_primary] = cib_process_readwrite, [cib__op_modify] = cib_process_modify, [cib__op_noop] = cib_process_noop, [cib__op_ping] = cib_process_ping, [cib__op_primary] = cib_process_readwrite, [cib__op_query] = cib_process_query, [cib__op_replace] = cib_process_replace_svr, [cib__op_secondary] = cib_process_readwrite, [cib__op_shutdown] = cib_process_shutdown_req, [cib__op_sync_all] = cib_process_sync, [cib__op_sync_one] = cib_process_sync_one, [cib__op_upgrade] = cib_process_upgrade_server, [cib__op_schemas] = cib_process_schemas, }; /*! * \internal * \brief Get the function that performs a given server-side CIB operation * * \param[in] operation Operation whose function to look up * * \return Function that performs \p operation within \c pacemaker-based */ cib__op_fn_t based_get_op_function(const cib__operation_t *operation) { enum cib__op_type type = operation->type; CRM_ASSERT(type >= 0); if (type >= PCMK__NELEM(cib_op_functions)) { return NULL; } return cib_op_functions[type]; }