X-Git-Url: https://git.lttng.org/?a=blobdiff_plain;f=include%2Flttng%2Fnotification%2Fnotification-internal.h;h=7e601b0c7de82d5340b8686c932bff42e6b5b63d;hb=4878de5c7deb512bbdac4fdfc498907efa06fb7c;hp=648977f3378ff804ba542ddccd83cb07a74134c2;hpb=3647288fe42b25340f905046f3bd9aef21e12aaa;p=lttng-tools.git diff --git a/include/lttng/notification/notification-internal.h b/include/lttng/notification/notification-internal.h index 648977f33..7e601b0c7 100644 --- a/include/lttng/notification/notification-internal.h +++ b/include/lttng/notification/notification-internal.h @@ -1,18 +1,8 @@ /* - * Copyright (C) 2017 - Jérémie Galarneau + * Copyright (C) 2017 Jérémie Galarneau * - * This library is free software; you can redistribute it and/or modify it - * under the terms of the GNU Lesser General Public License, version 2.1 only, - * as published by the Free Software Foundation. + * SPDX-License-Identifier: LGPL-2.1-only * - * This library is distributed in the hope that it will be useful, but WITHOUT - * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - * FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License - * for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this library; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ #ifndef LTTNG_NOTIFICATION_INTERNAL_H @@ -20,51 +10,34 @@ #include #include -#include -#include #include #include #include +struct lttng_payload; +struct lttng_payload_view; + struct lttng_notification { - struct lttng_condition *condition; + struct lttng_trigger *trigger; struct lttng_evaluation *evaluation; - /* - * The ownership of the notification's inner-elements depends - * on the way it was created. The notification owns both - * the condition and evaluation if it was obtained from a notification - * channel (i.e. created using lttng_notification_create_from_buffer) - * as the user may never access the condition and evaluation, - * thus never getting a chance to free them. - * - * However, when the _private_ lttng_notification_create() function - * is used, no ownership of condition and evaluation is assumed by - * the notification object. The main reason for this change in - * behavior is that internal users of this API only use the object - * to use its serialization facilities. - */ - bool owns_elements; }; struct lttng_notification_comm { /* Size of the payload following this field. */ uint32_t length; - /* Condition and evaluation objects follow. */ + /* Trigger and evaluation objects follow. */ char payload[]; } LTTNG_PACKED; -LTTNG_HIDDEN struct lttng_notification *lttng_notification_create( - struct lttng_condition *condition, + struct lttng_trigger *trigger, struct lttng_evaluation *evaluation); -LTTNG_HIDDEN -int lttng_notification_serialize(struct lttng_notification *notification, - struct lttng_dynamic_buffer *buf); +int lttng_notification_serialize(const struct lttng_notification *notification, + struct lttng_payload *payload); -LTTNG_HIDDEN -ssize_t lttng_notification_create_from_buffer( - const struct lttng_buffer_view *view, +ssize_t lttng_notification_create_from_payload( + struct lttng_payload_view *view, struct lttng_notification **notification); #endif /* LTTNG_NOTIFICATION_INTERNAL_H */