Commit | Line | Data |
---|---|---|
284ee387 JG |
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 | #include <lttng/notification/notification-internal.h> | |
19 | #include <lttng/condition/condition.h> | |
20 | #include <lttng/condition/evaluation.h> | |
21 | #include <assert.h> | |
22 | ||
23 | LTTNG_HIDDEN | |
24 | struct lttng_notification *lttng_notification_create( | |
25 | struct lttng_condition *condition, | |
26 | struct lttng_evaluation *evaluation) | |
27 | { | |
28 | struct lttng_notification *notification = NULL; | |
29 | ||
30 | if (!condition || !evaluation) { | |
31 | goto end; | |
32 | } | |
33 | ||
34 | notification = zmalloc(sizeof(struct lttng_notification)); | |
35 | if (!notification) { | |
36 | goto end; | |
37 | } | |
38 | ||
39 | notification->condition = condition; | |
40 | notification->evaluation = evaluation; | |
41 | end: | |
42 | return notification; | |
43 | } | |
44 | ||
45 | void lttng_notification_destroy(struct lttng_notification *notification) | |
46 | { | |
47 | if (!notification) { | |
48 | return; | |
49 | } | |
50 | ||
51 | lttng_condition_destroy(notification->condition); | |
52 | lttng_evaluation_destroy(notification->evaluation); | |
53 | free(notification); | |
54 | } | |
55 | ||
56 | struct lttng_condition *lttng_notification_get_condition( | |
57 | struct lttng_notification *notification) | |
58 | { | |
59 | return notification ? notification->condition : NULL; | |
60 | } | |
61 | ||
62 | struct lttng_evaluation *lttng_notification_get_evaluation( | |
63 | struct lttng_notification *notification) | |
64 | { | |
65 | return notification ? notification->evaluation : NULL; | |
66 | } |