Commit | Line | Data |
---|---|---|
b99a0cb3 JG |
1 | /* |
2 | * error-query-internal.h | |
3 | * | |
4 | * Copyright (C) 2021 Jérémie Galarneau <jeremie.galarneau@efficios.com> | |
5 | * | |
6 | * SPDX-License-Identifier: GPL-2.1-only | |
7 | * | |
8 | */ | |
9 | ||
10 | #ifndef LTTNG_ERROR_QUERY_INTERNAL_H | |
11 | #define LTTNG_ERROR_QUERY_INTERNAL_H | |
12 | ||
13 | #include <lttng/lttng.h> | |
14 | #include <common/macros.h> | |
15 | #include <common/payload.h> | |
16 | #include <common/payload-view.h> | |
17 | ||
7966af57 SM |
18 | #ifdef __cplusplus |
19 | extern "C" { | |
20 | #endif | |
21 | ||
6a751b95 JR |
22 | struct mi_writer; |
23 | ||
b99a0cb3 JG |
24 | enum lttng_error_query_target_type { |
25 | LTTNG_ERROR_QUERY_TARGET_TYPE_TRIGGER, | |
63dd3d7b | 26 | LTTNG_ERROR_QUERY_TARGET_TYPE_CONDITION, |
b99a0cb3 JG |
27 | LTTNG_ERROR_QUERY_TARGET_TYPE_ACTION, |
28 | }; | |
29 | ||
b99a0cb3 JG |
30 | enum lttng_error_query_target_type lttng_error_query_get_target_type( |
31 | const struct lttng_error_query *query); | |
32 | ||
b99a0cb3 JG |
33 | const struct lttng_trigger *lttng_error_query_trigger_borrow_target( |
34 | const struct lttng_error_query *query); | |
35 | ||
63dd3d7b JG |
36 | const struct lttng_trigger *lttng_error_query_condition_borrow_target( |
37 | const struct lttng_error_query *query); | |
38 | ||
b99a0cb3 JG |
39 | const struct lttng_trigger *lttng_error_query_action_borrow_trigger_target( |
40 | const struct lttng_error_query *query); | |
41 | ||
588c4b0d | 42 | struct lttng_action *lttng_error_query_action_borrow_action_target( |
b99a0cb3 | 43 | const struct lttng_error_query *query, |
588c4b0d | 44 | struct lttng_trigger *trigger); |
b99a0cb3 | 45 | |
b99a0cb3 JG |
46 | int lttng_error_query_serialize(const struct lttng_error_query *query, |
47 | struct lttng_payload *payload); | |
48 | ||
b99a0cb3 JG |
49 | ssize_t lttng_error_query_create_from_payload(struct lttng_payload_view *view, |
50 | struct lttng_error_query **query); | |
51 | ||
b99a0cb3 JG |
52 | int lttng_error_query_result_serialize( |
53 | const struct lttng_error_query_result *result, | |
54 | struct lttng_payload *payload); | |
55 | ||
b99a0cb3 JG |
56 | ssize_t lttng_error_query_result_create_from_payload( |
57 | struct lttng_payload_view *view, | |
58 | struct lttng_error_query_result **result); | |
59 | ||
b99a0cb3 JG |
60 | int lttng_error_query_results_serialize( |
61 | const struct lttng_error_query_results *results, | |
62 | struct lttng_payload *payload); | |
63 | ||
b99a0cb3 JG |
64 | ssize_t lttng_error_query_results_create_from_payload( |
65 | struct lttng_payload_view *view, | |
66 | struct lttng_error_query_results **results); | |
67 | ||
b99a0cb3 JG |
68 | struct lttng_error_query_result * |
69 | lttng_error_query_result_counter_create( | |
70 | const char *name, const char *description, uint64_t value); | |
71 | ||
b99a0cb3 JG |
72 | void lttng_error_query_result_destroy(struct lttng_error_query_result *result); |
73 | ||
b99a0cb3 JG |
74 | struct lttng_error_query_results *lttng_error_query_results_create(void); |
75 | ||
76 | /* Ownership of `result` is transferred on success. */ | |
b99a0cb3 JG |
77 | int lttng_error_query_results_add_result( |
78 | struct lttng_error_query_results *results, | |
79 | struct lttng_error_query_result *result); | |
80 | ||
6a751b95 JR |
81 | enum lttng_error_code lttng_error_query_results_mi_serialize( |
82 | const struct lttng_error_query_results *results, | |
83 | struct mi_writer *writer); | |
84 | ||
7966af57 SM |
85 | #ifdef __cplusplus |
86 | } | |
87 | #endif | |
88 | ||
b99a0cb3 | 89 | #endif /* LTTNG_ERROR_QUERY_INTERNAL_H */ |