X-Git-Url: http://git.efficios.com/?a=blobdiff_plain;f=src%2Flib%2Fgraph%2Fquery-executor.c;h=3a00c9b80985abe0af2e4cf2a4f6a96a3d3b0d54;hb=2c1d3e9111d8f1b55361b9b880350c2680c90093;hp=b26455d40e46398c7af6c1df9f3e9a6cd4488d7a;hpb=578e048b5debf169e286e5b5cc747b5d6c16886d;p=babeltrace.git diff --git a/src/lib/graph/query-executor.c b/src/lib/graph/query-executor.c index b26455d4..3a00c9b8 100644 --- a/src/lib/graph/query-executor.c +++ b/src/lib/graph/query-executor.c @@ -20,11 +20,13 @@ * SOFTWARE. */ -#define BT_LOG_TAG "QUERY-EXECUTOR" -#include "lib/lib-logging.h" +#define BT_LOG_TAG "LIB/QUERY-EXECUTOR" +#include "lib/logging.h" #include "common/assert.h" +#include "common/common.h" #include "lib/assert-pre.h" +#include "lib/assert-post.h" #include #include #include @@ -35,6 +37,7 @@ #include "component-class.h" #include "query-executor.h" +#include "lib/func-status.h" static void bt_query_executor_destroy(struct bt_object *obj) @@ -53,7 +56,8 @@ struct bt_query_executor *bt_query_executor_create(void) BT_LOGD_STR("Creating query executor."); query_exec = g_new0(struct bt_query_executor, 1); if (!query_exec) { - BT_LOGE_STR("Failed to allocate one query executor."); + BT_LIB_LOGE_APPEND_CAUSE( + "Failed to allocate one query executor."); goto end; } @@ -65,17 +69,19 @@ end: return (void *) query_exec; } -enum bt_query_executor_status bt_query_executor_query( +enum bt_query_executor_query_status bt_query_executor_query( struct bt_query_executor *query_exec, const struct bt_component_class *comp_cls, const char *object, const struct bt_value *params, + enum bt_logging_level log_level, const struct bt_value **user_result) { - typedef enum bt_query_status (*method_t)(void *, const void *, - const void *, const void *, const void *); + typedef enum bt_component_class_query_method_status (*method_t)(void *, + const void *, const void *, const void *, enum bt_logging_level, + const void *); - enum bt_query_status status; - enum bt_query_executor_status exec_status; + enum bt_query_executor_query_status status; + enum bt_component_class_query_method_status query_status; method_t method = NULL; BT_ASSERT_PRE_NON_NULL(query_exec, "Query executor"); @@ -118,43 +124,45 @@ enum bt_query_executor_status bt_query_executor_query( /* Not an error: nothing to query */ BT_LIB_LOGD("Component class has no registered query method: " "%!+C", comp_cls); - exec_status = BT_QUERY_EXECUTOR_STATUS_UNSUPPORTED; + status = BT_FUNC_STATUS_INVALID_OBJECT; goto end; } BT_LIB_LOGD("Calling user's query method: " - "query-exec-addr=%p, %![cc-]+C, object=\"%s\", %![params-]+v", - query_exec, comp_cls, object, params); + "query-exec-addr=%p, %![cc-]+C, object=\"%s\", %![params-]+v, " + "log-level=%s", + query_exec, comp_cls, object, params, + bt_common_logging_level_string(log_level)); *user_result = NULL; - status = method((void *) comp_cls, query_exec, object, params, - user_result); + query_status = method((void *) comp_cls, query_exec, object, params, + log_level, user_result); BT_LIB_LOGD("User method returned: status=%s, %![res-]+v", - bt_query_status_string(status), *user_result); - BT_ASSERT_PRE(status != BT_QUERY_STATUS_OK || *user_result, - "User method returned `BT_QUERY_STATUS_OK` without a result."); - exec_status = (int) status; + bt_common_func_status_string(query_status), *user_result); + BT_ASSERT_POST(query_status != BT_FUNC_STATUS_OK || *user_result, + "User method returned `BT_FUNC_STATUS_OK` without a result."); + status = (int) query_status; if (query_exec->canceled) { BT_OBJECT_PUT_REF_AND_RESET(*user_result); - exec_status = BT_QUERY_EXECUTOR_STATUS_CANCELED; + status = BT_FUNC_STATUS_CANCELED; goto end; } end: - return exec_status; + return status; } -enum bt_query_executor_status bt_query_executor_cancel( +enum bt_query_executor_cancel_status bt_query_executor_cancel( struct bt_query_executor *query_exec) { BT_ASSERT_PRE_NON_NULL(query_exec, "Query executor"); query_exec->canceled = BT_TRUE; - BT_LOGV("Canceled query executor: addr=%p", query_exec); - return BT_QUERY_EXECUTOR_STATUS_OK; + BT_LOGI("Canceled query executor: addr=%p", query_exec); + return BT_FUNC_STATUS_OK; } bt_bool bt_query_executor_is_canceled(const struct bt_query_executor *query_exec) { - BT_ASSERT_PRE_NON_NULL(query_exec, "Query executor"); + BT_ASSERT_PRE_DEV_NON_NULL(query_exec, "Query executor"); return query_exec->canceled; }