X-Git-Url: http://git.efficios.com/?a=blobdiff_plain;f=lib%2Fgraph%2Fquery-executor.c;h=5c8e33e14af79d332c864d37bd5c0c0de15854ac;hb=68b66a256a54d32992dfefeaad11eea88b7df234;hp=4f5a64d82e2510c017d02634789b63ea855c5a6f;hpb=40f4ba76dd6f9508ca51b6220eaed57632281a07;p=babeltrace.git diff --git a/lib/graph/query-executor.c b/lib/graph/query-executor.c index 4f5a64d8..5c8e33e1 100644 --- a/lib/graph/query-executor.c +++ b/lib/graph/query-executor.c @@ -1,5 +1,5 @@ /* - * Copyright 2017 Philippe Proulx + * Copyright 2017-2018 Philippe Proulx * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -21,20 +21,19 @@ */ #define BT_LOG_TAG "QUERY-EXECUTOR" -#include - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include static void bt_query_executor_destroy(struct bt_object *obj) @@ -46,7 +45,7 @@ void bt_query_executor_destroy(struct bt_object *obj) g_free(query_exec); } -struct bt_private_query_executor *bt_private_query_executor_create(void) +struct bt_query_executor *bt_query_executor_create(void) { struct bt_query_executor *query_exec; @@ -65,16 +64,15 @@ end: return (void *) query_exec; } -enum bt_query_executor_status bt_private_query_executor_query( - struct bt_private_query_executor *priv_query_exec, - struct bt_component_class *comp_cls, +enum bt_query_executor_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, const struct bt_value **user_result) { - typedef enum bt_query_status (*method_t)(void *, void *, - const void *, const void *, void *); + typedef enum bt_query_status (*method_t)(void *, const void *, + const void *, const void *, const void *); - struct bt_query_executor *query_exec = (void *) priv_query_exec; enum bt_query_status status; enum bt_query_executor_status exec_status; method_t method = NULL; @@ -127,7 +125,8 @@ enum bt_query_executor_status bt_private_query_executor_query( "query-exec-addr=%p, %![cc-]+C, object=\"%s\", %![params-]+v", query_exec, comp_cls, object, params); *user_result = NULL; - status = method(comp_cls, query_exec, object, params, user_result); + status = method((void *) comp_cls, query_exec, object, params, + 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, @@ -135,7 +134,7 @@ enum bt_query_executor_status bt_private_query_executor_query( exec_status = (int) status; if (query_exec->canceled) { BT_OBJECT_PUT_REF_AND_RESET(*user_result); - status = BT_QUERY_EXECUTOR_STATUS_CANCELED; + exec_status = BT_QUERY_EXECUTOR_STATUS_CANCELED; goto end; } @@ -143,19 +142,27 @@ end: return exec_status; } -enum bt_query_executor_status bt_private_query_executor_cancel( - struct bt_private_query_executor *priv_query_exec) +enum bt_query_executor_status bt_query_executor_cancel( + struct bt_query_executor *query_exec) { - struct bt_query_executor *query_exec = (void *) priv_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_bool bt_query_executor_is_canceled(struct bt_query_executor *query_exec) +bt_bool bt_query_executor_is_canceled(const struct bt_query_executor *query_exec) { BT_ASSERT_PRE_NON_NULL(query_exec, "Query executor"); return query_exec->canceled; } + +void bt_query_executor_get_ref(const struct bt_query_executor *query_executor) +{ + bt_object_get_ref(query_executor); +} + +void bt_query_executor_put_ref(const struct bt_query_executor *query_executor) +{ + bt_object_put_ref(query_executor); +}