Move notification API code to libcommon
[lttng-tools.git] / src / common / notification.c
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 }
This page took 0.032204 seconds and 5 git commands to generate.