g_free(query_exec);
}
-struct bt_query_executor *bt_query_executor_create(
+struct bt_query_executor *bt_query_executor_create_with_method_data(
const bt_component_class *comp_cls, const char *object,
- const bt_value *params)
+ const bt_value *params, void *method_data)
{
struct bt_query_executor *query_exec;
BT_ASSERT_PRE_NON_NULL(comp_cls, "Component class");
BT_ASSERT_PRE_NON_NULL(object, "Object");
BT_LIB_LOGD("Creating query executor: "
- "%![comp-cls-]+C, object=\"%s\", %![params-]%+v",
+ "%![comp-cls-]+C, object=\"%s\", %![params-]+v",
comp_cls, object, params);
query_exec = g_new0(struct bt_query_executor, 1);
if (!query_exec) {
}
bt_object_get_no_null_check(query_exec->params);
+ query_exec->method_data = method_data;
query_exec->log_level = BT_LOGGING_LEVEL_NONE;
bt_query_executor_add_interrupter(query_exec,
query_exec->default_interrupter);
bt_object_init_shared(&query_exec->base,
bt_query_executor_destroy);
BT_LIB_LOGD("Created query executor: "
- "addr=%p, %![comp-cls-]+C, object=\"%s\", %![params-]%+v",
+ "addr=%p, %![comp-cls-]+C, object=\"%s\", %![params-]+v",
query_exec, comp_cls, object, params);
end:
return (void *) query_exec;
}
+struct bt_query_executor *bt_query_executor_create(
+ const bt_component_class *comp_cls, const char *object,
+ const bt_value *params)
+{
+ return bt_query_executor_create_with_method_data(comp_cls,
+ object, params, NULL);
+}
+
enum bt_query_executor_query_status bt_query_executor_query(
struct bt_query_executor *query_exec,
const struct bt_value **user_result)
void * /* private query executor */,
const char * /* object */,
const struct bt_value * /* parameters */,
+ void * /* method data */,
const struct bt_value ** /* result */);
enum bt_query_executor_query_status status;
*user_result = NULL;
query_status = method((void *) query_exec->comp_cls,
(void *) query_exec, query_exec->object->str,
- query_exec->params, user_result);
+ query_exec->params, query_exec->method_data, user_result);
BT_LIB_LOGD("User method returned: status=%s, %![res-]+v",
bt_common_func_status_string(query_status), *user_result);
BT_ASSERT_POST(query_status != BT_FUNC_STATUS_OK || *user_result,