2 * Copyright (C) 2020 Jérémie Galarneau <jeremie.galarneau@efficios.com>
4 * SPDX-License-Identifier: GPL-2.0-only
8 #ifndef ACTION_EXECUTOR_H
9 #define ACTION_EXECUTOR_H
11 struct action_executor;
12 struct notification_thread_handle;
13 struct lttng_evaluation;
15 struct notification_client_list;
16 struct lttng_credentials;
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,
25 struct action_executor *action_executor_create(struct notification_thread_handle *handle);
27 void action_executor_destroy(struct action_executor *executor);
30 * Enqueue a job on an action executor's work queue to perform the actions
31 * associated with a trigger.
33 * A reference to `trigger` is acquired.
34 * A reference to `list` is acquired.
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.
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);
46 #endif /* ACTION_EXECUTOR_H */