const char **fail_reason)
{
struct bt_value *result = NULL;
- enum bt_query_status status;
+ enum bt_query_executor_status status;
*fail_reason = "unknown error";
int ret = 0;
status = bt_private_query_executor_query(the_query_executor,
comp_cls, obj, params, &result);
switch (status) {
- case BT_QUERY_STATUS_OK:
+ case BT_QUERY_EXECUTOR_STATUS_OK:
goto ok;
- case BT_QUERY_STATUS_AGAIN:
+ case BT_QUERY_EXECUTOR_STATUS_AGAIN:
{
const uint64_t sleep_time_us = 100000;
/* Wait 100 ms and retry */
- BT_LOGV("Got BT_QUERY_STATUS_AGAIN: sleeping: "
+ BT_LOGV("Got BT_QUERY_EXECUTOR_STATUS_AGAIN: sleeping: "
"time-us=%" PRIu64, sleep_time_us);
if (usleep(sleep_time_us)) {
continue;
}
- case BT_QUERY_STATUS_EXECUTOR_CANCELED:
+ case BT_QUERY_EXECUTOR_STATUS_CANCELED:
*fail_reason = "canceled by user";
goto error;
- case BT_QUERY_STATUS_ERROR:
+ case BT_QUERY_EXECUTOR_STATUS_ERROR:
goto error;
- case BT_QUERY_STATUS_INVALID_OBJECT:
+ case BT_QUERY_EXECUTOR_STATUS_INVALID_OBJECT:
*fail_reason = "invalid or unknown query object";
goto error;
- case BT_QUERY_STATUS_INVALID_PARAMS:
+ case BT_QUERY_EXECUTOR_STATUS_INVALID_PARAMS:
*fail_reason = "invalid query parameters";
goto error;
- case BT_QUERY_STATUS_NOMEM:
+ case BT_QUERY_EXECUTOR_STATUS_UNSUPPORTED:
+ *fail_reason = "unsupported action";
+ goto error;
+ case BT_QUERY_EXECUTOR_STATUS_NOMEM:
*fail_reason = "not enough memory";
goto error;
default:
/* For enum bt_self_component_status */
#include <babeltrace/graph/self-component.h>
-/* For enum bt_query_status */
-#include <babeltrace/graph/query-executor.h>
/* For enum bt_self_notification_iterator_status */
#include <babeltrace/graph/self-notification-iterator.h>
-/* For struct bt_private_component_class_query_method_return */
+/* For enum bt_query_status */
#include <babeltrace/graph/private-component-class.h>
#ifdef __cplusplus
#include <babeltrace/graph/self-component.h>
/* For enum bt_query_status */
-#include <babeltrace/graph/query-executor.h>
-
-/* For struct bt_private_component_class_query_method_return */
#include <babeltrace/graph/private-component-class.h>
#ifdef __cplusplus
/* For enum bt_self_component_status */
#include <babeltrace/graph/self-component.h>
-/* For enum bt_query_status */
-#include <babeltrace/graph/query-executor.h>
-
/* For enum bt_self_notification_iterator_status */
#include <babeltrace/graph/self-notification-iterator.h>
-/* For struct bt_private_component_class_query_method_return */
+/* For enum bt_query_status */
#include <babeltrace/graph/private-component-class.h>
#ifdef __cplusplus
* SOFTWARE.
*/
-/* For enum bt_query_status */
+/* For enum bt_query_executor_status */
#include <babeltrace/graph/query-executor.h>
#ifdef __cplusplus
struct bt_component_class;
struct bt_private_component_class;
+enum bt_query_status {
+ BT_QUERY_STATUS_OK = BT_QUERY_EXECUTOR_STATUS_OK,
+ BT_QUERY_STATUS_AGAIN = BT_QUERY_EXECUTOR_STATUS_AGAIN,
+ BT_QUERY_STATUS_ERROR = BT_QUERY_EXECUTOR_STATUS_ERROR,
+ BT_QUERY_STATUS_NOMEM = BT_QUERY_EXECUTOR_STATUS_NOMEM,
+ BT_QUERY_STATUS_INVALID_OBJECT = BT_QUERY_EXECUTOR_STATUS_INVALID_OBJECT,
+ BT_QUERY_STATUS_INVALID_PARAMS = BT_QUERY_EXECUTOR_STATUS_INVALID_PARAMS,
+};
+
static inline
struct bt_component_class *
bt_private_component_class_as_component_class(
* SOFTWARE.
*/
-/* For enum bt_query_status */
+/* For enum bt_query_executor_status */
#include <babeltrace/graph/query-executor.h>
#ifdef __cplusplus
struct bt_private_query_executor *bt_private_query_executor_create(void);
extern
-enum bt_query_status bt_private_query_executor_query(
+enum bt_query_executor_status bt_private_query_executor_query(
struct bt_private_query_executor *query_executor,
struct bt_component_class *component_class,
const char *object, struct bt_value *params,
struct bt_value **result);
extern
-enum bt_query_status bt_private_query_executor_cancel(
+enum bt_query_executor_status bt_private_query_executor_cancel(
struct bt_private_query_executor *query_executor);
#ifdef __cplusplus
#include <babeltrace/types.h>
#include <babeltrace/object-internal.h>
+#include <babeltrace/graph/query-executor.h>
+#include <babeltrace/graph/private-component-class.h>
struct bt_query_executor {
struct bt_object base;
return "BT_QUERY_STATUS_OK";
case BT_QUERY_STATUS_AGAIN:
return "BT_QUERY_STATUS_AGAIN";
- case BT_QUERY_STATUS_EXECUTOR_CANCELED:
- return "BT_QUERY_STATUS_EXECUTOR_CANCELED";
- case BT_QUERY_STATUS_UNSUPPORTED:
- return "BT_QUERY_STATUS_UNSUPPORTED";
case BT_QUERY_STATUS_ERROR:
return "BT_QUERY_STATUS_ERROR";
case BT_QUERY_STATUS_INVALID_OBJECT:
}
};
+static inline const char *bt_query_executor_status_string(
+ enum bt_query_executor_status status)
+{
+ switch (status) {
+ case BT_QUERY_EXECUTOR_STATUS_OK:
+ return "BT_QUERY_EXECUTOR_STATUS_OK";
+ case BT_QUERY_EXECUTOR_STATUS_AGAIN:
+ return "BT_QUERY_EXECUTOR_STATUS_AGAIN";
+ case BT_QUERY_EXECUTOR_STATUS_CANCELED:
+ return "BT_QUERY_EXECUTOR_STATUS_CANCELED";
+ case BT_QUERY_EXECUTOR_STATUS_UNSUPPORTED:
+ return "BT_QUERY_EXECUTOR_STATUS_UNSUPPORTED";
+ case BT_QUERY_EXECUTOR_STATUS_ERROR:
+ return "BT_QUERY_EXECUTOR_STATUS_ERROR";
+ case BT_QUERY_EXECUTOR_STATUS_INVALID_OBJECT:
+ return "BT_QUERY_EXECUTOR_STATUS_INVALID_OBJECT";
+ case BT_QUERY_EXECUTOR_STATUS_INVALID_PARAMS:
+ return "BT_QUERY_EXECUTOR_STATUS_INVALID_PARAMS";
+ case BT_QUERY_EXECUTOR_STATUS_NOMEM:
+ return "BT_QUERY_EXECUTOR_STATUS_NOMEM";
+ default:
+ return "(unknown)";
+ }
+};
+
#endif /* BABELTRACE_GRAPH_QUERY_EXECUTOR_INTERNAL_H */
struct bt_query_executor;
-enum bt_query_status {
- BT_QUERY_STATUS_OK = 0,
- BT_QUERY_STATUS_AGAIN = 11,
- BT_QUERY_STATUS_UNSUPPORTED = 95,
- BT_QUERY_STATUS_EXECUTOR_CANCELED = 125,
- BT_QUERY_STATUS_ERROR = -1,
- BT_QUERY_STATUS_NOMEM = -12,
- BT_QUERY_STATUS_INVALID_OBJECT = -23,
- BT_QUERY_STATUS_INVALID_PARAMS = -24,
+enum bt_query_executor_status {
+ BT_QUERY_EXECUTOR_STATUS_OK = 0,
+ BT_QUERY_EXECUTOR_STATUS_AGAIN = 11,
+ BT_QUERY_EXECUTOR_STATUS_UNSUPPORTED = 95,
+ BT_QUERY_EXECUTOR_STATUS_CANCELED = 125,
+ BT_QUERY_EXECUTOR_STATUS_ERROR = -1,
+ BT_QUERY_EXECUTOR_STATUS_NOMEM = -12,
+ BT_QUERY_EXECUTOR_STATUS_INVALID_OBJECT = -23,
+ BT_QUERY_EXECUTOR_STATUS_INVALID_PARAMS = -24,
};
extern
return (void *) query_exec;
}
-enum bt_query_status bt_private_query_executor_query(
+enum bt_query_executor_status bt_private_query_executor_query(
struct bt_private_query_executor *priv_query_exec,
struct bt_component_class *comp_cls,
const char *object, struct bt_value *params,
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;
BT_ASSERT_PRE_NON_NULL(query_exec, "Query executor");
/* Not an error: nothing to query */
BT_LIB_LOGD("Component class has no registered query method: "
"%!+C", comp_cls);
- status = BT_QUERY_STATUS_UNSUPPORTED;
+ exec_status = BT_QUERY_EXECUTOR_STATUS_UNSUPPORTED;
goto end;
}
status = method(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_EXECUTOR_CANCELED &&
- status != BT_QUERY_STATUS_UNSUPPORTED,
- "Unexpected (illegal) returned status: status=%s",
- bt_query_status_string(status));
BT_ASSERT_PRE(status != BT_QUERY_STATUS_OK || *user_result,
"User method returned `BT_QUERY_STATUS_OK` without a result.");
+ exec_status = (int) status;
if (query_exec->canceled) {
BT_OBJECT_PUT_REF_AND_RESET(*user_result);
- status = BT_QUERY_STATUS_EXECUTOR_CANCELED;
+ status = BT_QUERY_EXECUTOR_STATUS_CANCELED;
goto end;
}
end:
- return status;
+ return exec_status;
}
-enum bt_query_status bt_private_query_executor_cancel(
+enum bt_query_executor_status bt_private_query_executor_cancel(
struct bt_private_query_executor *priv_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_STATUS_OK;
+ return BT_QUERY_EXECUTOR_STATUS_OK;
}
bt_bool bt_query_executor_is_canceled(struct bt_query_executor *query_exec)