lib: update copyrights
[babeltrace.git] / lib / graph / notification / notification.c
index 57da6c333c3ae95c80d24babd2eec2bcff210ccf..3338780d435efd68f90dbeb8da25d30621b1032c 100644 (file)
@@ -1,10 +1,7 @@
 /*
- * Babeltrace Plug-in Notification
- *
+ * Copyright 2017-2018 Philippe Proulx <pproulx@efficios.com>
  * Copyright 2016 Jérémie Galarneau <jeremie.galarneau@efficios.com>
  *
- * Author: Jérémie Galarneau <jeremie.galarneau@efficios.com>
- *
  * Permission is hereby granted, free of charge, to any person obtaining a copy
  * of this software and associated documentation files (the "Software"), to deal
  * in the Software without restriction, including without limitation the rights
 #define BT_LOG_TAG "NOTIF"
 #include <babeltrace/lib-logging-internal.h>
 
+#include <babeltrace/graph/notification-const.h>
 #include <babeltrace/graph/notification-internal.h>
+#include <babeltrace/graph/graph-internal.h>
 #include <babeltrace/assert-internal.h>
 #include <babeltrace/assert-pre-internal.h>
 
 BT_ASSERT_PRE_FUNC
 static inline void _init_seq_num(struct bt_notification *notification)
 {
-       notification->seq_num = -1ULL;
+       notification->seq_num = UINT64_C(-1);
 }
 
 #ifdef BT_DEV_MODE
@@ -46,17 +45,31 @@ static inline void _init_seq_num(struct bt_notification *notification)
 BT_HIDDEN
 void bt_notification_init(struct bt_notification *notification,
                enum bt_notification_type type,
-               bt_object_release_func release)
+               bt_object_release_func release,
+               struct bt_graph *graph)
 {
-       BT_ASSERT(type >= 0 && type < BT_NOTIFICATION_TYPE_NR);
+       BT_ASSERT(type >= 0 &&
+               type <= BT_NOTIFICATION_TYPE_PACKET_END);
        notification->type = type;
        init_seq_num(notification);
-       bt_object_init(&notification->base, release);
+       bt_object_init_shared(&notification->base, release);
+       notification->graph = graph;
+
+       if (graph) {
+               bt_graph_add_notification(graph, notification);
+       }
 }
 
 enum bt_notification_type bt_notification_get_type(
-               struct bt_notification *notification)
+               const struct bt_notification *notification)
 {
        BT_ASSERT_PRE_NON_NULL(notification, "Notification");
        return notification->type;
 }
+
+BT_HIDDEN
+void bt_notification_unlink_graph(struct bt_notification *notif)
+{
+       BT_ASSERT(notif);
+       notif->graph = NULL;
+}
This page took 0.023802 seconds and 4 git commands to generate.