Commit | Line | Data |
---|---|---|
f2b3ef9f JG |
1 | /* |
2 | * Copyright (C) 2020 Jérémie Galarneau <jeremie.galarneau@efficios.com> | |
3 | * | |
4 | * SPDX-License-Identifier: GPL-2.0-only | |
5 | * | |
6 | */ | |
7 | ||
8 | #ifndef ACTION_EXECUTOR_H | |
9 | #define ACTION_EXECUTOR_H | |
10 | ||
11 | struct action_executor; | |
12 | struct notification_thread_handle; | |
13 | struct lttng_evaluation; | |
14 | struct lttng_trigger; | |
15 | struct notification_client_list; | |
16 | struct lttng_credentials; | |
17 | ||
18 | enum action_executor_status { | |
19 | ACTION_EXECUTOR_STATUS_OK, | |
20 | ACTION_EXECUTOR_STATUS_OVERFLOW, | |
21 | ACTION_EXECUTOR_STATUS_ERROR, | |
22 | ACTION_EXECUTOR_STATUS_INVALID, | |
23 | }; | |
24 | ||
28f23191 | 25 | struct action_executor *action_executor_create(struct notification_thread_handle *handle); |
f2b3ef9f JG |
26 | |
27 | void action_executor_destroy(struct action_executor *executor); | |
28 | ||
f3509d2a JG |
29 | /* |
30 | * Enqueue a job on an action executor's work queue to perform the actions | |
31 | * associated with a trigger. | |
32 | * | |
33 | * A reference to `trigger` is acquired. | |
34 | * A reference to `list` is acquired. | |
35 | * | |
36 | * This function assumes the ownership of the `evaluation` both on success and | |
37 | * failure: the caller should no longer access it once the function returns. | |
38 | */ | |
28f23191 JG |
39 | enum action_executor_status |
40 | action_executor_enqueue_trigger(struct action_executor *executor, | |
41 | struct lttng_trigger *trigger, | |
42 | struct lttng_evaluation *evaluation, | |
43 | const struct lttng_credentials *object_creds, | |
44 | struct notification_client_list *list); | |
f2b3ef9f JG |
45 | |
46 | #endif /* ACTION_EXECUTOR_H */ |