e938a00298effcbd2adf753649e283bf88b2a246
[lttng-tools.git] / include / lttng / notification / notification.h
1 /*
2 * Copyright (C) 2017 - Jérémie Galarneau <jeremie.galarneau@efficios.com>
3 *
4 * This library is free software; you can redistribute it and/or modify it
5 * under the terms of the GNU Lesser General Public License, version 2.1 only,
6 * as published by the Free Software Foundation.
7 *
8 * This library is distributed in the hope that it will be useful, but WITHOUT
9 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
10 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License
11 * for more details.
12 *
13 * You should have received a copy of the GNU Lesser General Public License
14 * along with this library; if not, write to the Free Software Foundation,
15 * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
16 */
17
18 #ifndef LTTNG_NOTIFICATION_H
19 #define LTTNG_NOTIFICATION_H
20
21 #ifdef __cplusplus
22 extern "C" {
23 #endif
24
25 struct lttng_condition;
26 struct lttng_evaluation;
27 struct lttng_notification;
28
29 /*
30 * Get a notification's condition.
31 *
32 * The notification retains the ownership of both the condition and evaluation
33 * objects. Hence, it is not valid to access those objects after the destruction
34 * of their associated notification.
35 *
36 * The caller should check the condition's type in order to use the appropriate
37 * specialized functions to access the condition's properties.
38 *
39 * Returns an lttng_condition object on success, NULL on error.
40 */
41 extern const struct lttng_condition *lttng_notification_get_condition(
42 struct lttng_notification *notification);
43
44 /*
45 * Get a notification's condition's evaluation.
46 *
47 * The notification retains the ownership of the evaluation object. Hence, it is
48 * not valid to access that object after the destruction of its associated
49 * notification.
50 *
51 * The caller should check the evaluation's type in order to use the appropriate
52 * specialized functions to access the evaluation's properties.
53 *
54 * Returns an lttng_evaluation object on success, NULL on error.
55 */
56 extern const struct lttng_evaluation *lttng_notification_get_evaluation(
57 struct lttng_notification *notification);
58
59 /*
60 * Destroys (frees) a notification. The notification's condition and evaluation
61 * are destroyed as a side-effect.
62 */
63 extern void lttng_notification_destroy(struct lttng_notification *notification);
64
65 #ifdef __cplusplus
66 }
67 #endif
68
69 #endif /* LTTNG_NOTIFICATION_H */
This page took 0.029755 seconds and 3 git commands to generate.