X-Git-Url: http://git.efficios.com/?a=blobdiff_plain;f=lib%2Fgraph%2Fquery-executor.c;h=c7613ce9adc65626546879d47592e43507bb165b;hb=229f76ed6210c9f71d8e7dc3176bd81aa5824c86;hp=4f5a64d82e2510c017d02634789b63ea855c5a6f;hpb=78cf9df64fd5fe1ac99335a0957adad5ef231fdf;p=babeltrace.git diff --git a/lib/graph/query-executor.c b/lib/graph/query-executor.c index 4f5a64d8..c7613ce9 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 @@ -23,18 +23,17 @@ #define BT_LOG_TAG "QUERY-EXECUTOR" #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, @@ -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); +}