#ifndef LTTNG_NOTIFICATION_INTERNAL_H
#define LTTNG_NOTIFICATION_INTERNAL_H
-#include <lttng/notification/notification.h>
#include <common/macros.hpp>
-#include <stdint.h>
+#include <common/make-unique-wrapper.hpp>
+
+#include <lttng/notification/notification.h>
+
+#include <memory>
#include <stdbool.h>
+#include <stdint.h>
#include <sys/types.h>
struct lttng_payload;
struct lttng_payload_view;
struct lttng_notification {
+ using uptr = std::unique_ptr<
+ lttng_notification,
+ lttng::details::create_unique_class<lttng_notification,
+ lttng_notification_destroy>::deleter>;
+
struct lttng_trigger *trigger;
struct lttng_evaluation *evaluation;
};
char payload[];
} LTTNG_PACKED;
-struct lttng_notification *lttng_notification_create(
- struct lttng_trigger *trigger,
- struct lttng_evaluation *evaluation);
+struct lttng_notification *lttng_notification_create(struct lttng_trigger *trigger,
+ struct lttng_evaluation *evaluation);
int lttng_notification_serialize(const struct lttng_notification *notification,
- struct lttng_payload *payload);
+ struct lttng_payload *payload);
+
+ssize_t lttng_notification_create_from_payload(struct lttng_payload_view *view,
+ struct lttng_notification **notification);
+
+const struct lttng_condition *
+lttng_notification_get_const_condition(const struct lttng_notification *notification);
+const struct lttng_evaluation *
+lttng_notification_get_const_evaluation(const struct lttng_notification *notification);
-ssize_t lttng_notification_create_from_payload(
- struct lttng_payload_view *view,
- struct lttng_notification **notification);
+const struct lttng_trigger *
+lttng_notification_get_const_trigger(const struct lttng_notification *notification);
#endif /* LTTNG_NOTIFICATION_INTERNAL_H */