Commit | Line | Data |
---|---|---|
0c51e8f3 SM |
1 | /* |
2 | * Copyright (C) 2019 Simon Marchi <simon.marchi@efficios.com> | |
3 | * | |
4 | * SPDX-License-Identifier: LGPL-2.1-only | |
5 | * | |
6 | */ | |
7 | ||
702f26c8 JR |
8 | #ifndef LTTNG_ACTION_LIST_H |
9 | #define LTTNG_ACTION_LIST_H | |
0c51e8f3 SM |
10 | |
11 | struct lttng_action; | |
0c51e8f3 SM |
12 | |
13 | #ifdef __cplusplus | |
14 | extern "C" { | |
15 | #endif | |
16 | ||
17 | /* | |
702f26c8 | 18 | * Create a newly allocated action list object. |
0c51e8f3 | 19 | * |
702f26c8 JR |
20 | * Returns a new action list on success, NULL on failure. This action list |
21 | * must be destroyed using lttng_action_list_destroy(). | |
0c51e8f3 | 22 | */ |
702f26c8 | 23 | extern struct lttng_action *lttng_action_list_create(void); |
0c51e8f3 SM |
24 | |
25 | /* | |
702f26c8 | 26 | * Add an action to an lttng_action object of type LTTNG_ACTION_LIST. |
0c51e8f3 | 27 | * |
702f26c8 | 28 | * The action list acquires a reference to the action. The action can be |
0c51e8f3 | 29 | * safely destroyed after calling this function. An action must not be |
a8940c5e | 30 | * modified after adding it to a list. |
0c51e8f3 | 31 | * |
702f26c8 | 32 | * Adding an action list to an action list is not supported. |
0c51e8f3 | 33 | */ |
702f26c8 | 34 | extern enum lttng_action_status lttng_action_list_add_action( |
a8940c5e | 35 | struct lttng_action *list, struct lttng_action *action); |
0c51e8f3 SM |
36 | |
37 | /* | |
702f26c8 | 38 | * Get the number of actions in an action list. |
0c51e8f3 | 39 | */ |
702f26c8 | 40 | extern enum lttng_action_status lttng_action_list_get_count( |
a8940c5e | 41 | const struct lttng_action *list, unsigned int *count); |
0c51e8f3 SM |
42 | |
43 | /* | |
702f26c8 | 44 | * Get an action from the action list at a given index. |
0c51e8f3 | 45 | * |
a8940c5e | 46 | * Note that the list maintains the ownership of the returned action. |
0c51e8f3 | 47 | * It must not be destroyed by the user, nor should it be held beyond |
702f26c8 | 48 | * the lifetime of the action list. |
0c51e8f3 SM |
49 | * |
50 | * Returns an action, or NULL on error. | |
51 | */ | |
702f26c8 | 52 | extern const struct lttng_action *lttng_action_list_get_at_index( |
a8940c5e | 53 | const struct lttng_action *list, |
0c51e8f3 SM |
54 | unsigned int index); |
55 | ||
56 | #ifdef __cplusplus | |
57 | } | |
58 | #endif | |
59 | ||
702f26c8 | 60 | #endif /* LTTNG_ACTION_LIST_H */ |