X-Git-Url: https://git.lttng.org/?p=lttng-tools.git;a=blobdiff_plain;f=include%2Flttng%2Ferror-query-internal.hpp;fp=include%2Flttng%2Ferror-query-internal.hpp;h=7bf4da7481da438b53d2c1add3ca023287a28754;hp=0000000000000000000000000000000000000000;hb=c9e313bc594f40a86eed237dce222c0fc99c957f;hpb=4878de5c7deb512bbdac4fdfc498907efa06fb7c;ds=sidebyside diff --git a/include/lttng/error-query-internal.hpp b/include/lttng/error-query-internal.hpp new file mode 100644 index 000000000..7bf4da748 --- /dev/null +++ b/include/lttng/error-query-internal.hpp @@ -0,0 +1,81 @@ +/* + * error-query-internal.h + * + * Copyright (C) 2021 Jérémie Galarneau + * + * SPDX-License-Identifier: GPL-2.1-only + * + */ + +#ifndef LTTNG_ERROR_QUERY_INTERNAL_H +#define LTTNG_ERROR_QUERY_INTERNAL_H + +#include +#include +#include +#include + +struct mi_writer; + +enum lttng_error_query_target_type { + LTTNG_ERROR_QUERY_TARGET_TYPE_TRIGGER, + LTTNG_ERROR_QUERY_TARGET_TYPE_CONDITION, + LTTNG_ERROR_QUERY_TARGET_TYPE_ACTION, +}; + +enum lttng_error_query_target_type lttng_error_query_get_target_type( + const struct lttng_error_query *query); + +const struct lttng_trigger *lttng_error_query_trigger_borrow_target( + const struct lttng_error_query *query); + +const struct lttng_trigger *lttng_error_query_condition_borrow_target( + const struct lttng_error_query *query); + +const struct lttng_trigger *lttng_error_query_action_borrow_trigger_target( + const struct lttng_error_query *query); + +struct lttng_action *lttng_error_query_action_borrow_action_target( + const struct lttng_error_query *query, + struct lttng_trigger *trigger); + +int lttng_error_query_serialize(const struct lttng_error_query *query, + struct lttng_payload *payload); + +ssize_t lttng_error_query_create_from_payload(struct lttng_payload_view *view, + struct lttng_error_query **query); + +int lttng_error_query_result_serialize( + const struct lttng_error_query_result *result, + struct lttng_payload *payload); + +ssize_t lttng_error_query_result_create_from_payload( + struct lttng_payload_view *view, + struct lttng_error_query_result **result); + +int lttng_error_query_results_serialize( + const struct lttng_error_query_results *results, + struct lttng_payload *payload); + +ssize_t lttng_error_query_results_create_from_payload( + struct lttng_payload_view *view, + struct lttng_error_query_results **results); + +struct lttng_error_query_result * +lttng_error_query_result_counter_create( + const char *name, const char *description, uint64_t value); + +void lttng_error_query_result_destroy(struct lttng_error_query_result *result); + +struct lttng_error_query_results *lttng_error_query_results_create(void); + +/* Ownership of `result` is transferred on success. */ +int lttng_error_query_results_add_result( + struct lttng_error_query_results *results, + struct lttng_error_query_result *result); + +enum lttng_error_code lttng_error_query_results_mi_serialize( + const struct lttng_error_query_results *results, + struct mi_writer *writer); + +#endif /* LTTNG_ERROR_QUERY_INTERNAL_H */