X-Git-Url: http://git.efficios.com/?a=blobdiff_plain;f=include%2Fbabeltrace%2Fgraph%2Fnotification-internal.h;h=2fbdbb42cbc1ab38a0ec7c2f259b44756027f2a1;hb=312c056ae3d374b253fa0cfe5ed576c0b0e5e569;hp=01eb59670cc3fb89802df7eb180c2b0f21c5b97e;hpb=e7fa96c3b54878bd96a828be1cc945abfbfc1c64;p=babeltrace.git diff --git a/include/babeltrace/graph/notification-internal.h b/include/babeltrace/graph/notification-internal.h index 01eb5967..2fbdbb42 100644 --- a/include/babeltrace/graph/notification-internal.h +++ b/include/babeltrace/graph/notification-internal.h @@ -1,5 +1,5 @@ -#ifndef BABELTRACE_COMPONENT_NOTIFICATION_NOTIFICATION_INTERNAL_H -#define BABELTRACE_COMPONENT_NOTIFICATION_NOTIFICATION_INTERNAL_H +#ifndef BABELTRACE_GRAPH_NOTIFICATION_NOTIFICATION_INTERNAL_H +#define BABELTRACE_GRAPH_NOTIFICATION_NOTIFICATION_INTERNAL_H /* * BabelTrace - Plug-in Notification internal @@ -27,40 +27,65 @@ * SOFTWARE. */ -#include #include #include #include #include #include +#include -#ifdef __cplusplus -extern "C" { -#endif - -typedef struct bt_ctf_stream *(*get_stream_func)( +typedef struct bt_stream *(*get_stream_func)( struct bt_notification *notification); struct bt_notification { struct bt_object base; enum bt_notification_type type; get_stream_func get_stream; - bool frozen; + uint64_t seq_num; + bt_bool frozen; }; +#define BT_ASSERT_PRE_NOTIF_IS_TYPE(_notif, _type) \ + BT_ASSERT_PRE((_notif)->type == (_type), \ + "Notification has the wrong type: expected-type=%s, " \ + "%![notif-]+n", bt_notification_type_string(_type), \ + (_notif)) + BT_HIDDEN void bt_notification_init(struct bt_notification *notification, enum bt_notification_type type, bt_object_release_func release); -BT_HIDDEN static inline void bt_notification_freeze(struct bt_notification *notification) { - notification->frozen = true; + notification->frozen = BT_TRUE; } -#ifdef __cplusplus +static inline +const char *bt_notification_type_string(enum bt_notification_type type) +{ + switch (type) { + case BT_NOTIFICATION_TYPE_UNKNOWN: + return "BT_NOTIFICATION_TYPE_UNKNOWN"; + case BT_NOTIFICATION_TYPE_EVENT: + return "BT_NOTIFICATION_TYPE_EVENT"; + case BT_NOTIFICATION_TYPE_INACTIVITY: + return "BT_NOTIFICATION_TYPE_INACTIVITY"; + case BT_NOTIFICATION_TYPE_STREAM_BEGIN: + return "BT_NOTIFICATION_TYPE_STREAM_BEGIN"; + case BT_NOTIFICATION_TYPE_STREAM_END: + return "BT_NOTIFICATION_TYPE_STREAM_END"; + case BT_NOTIFICATION_TYPE_PACKET_BEGIN: + return "BT_NOTIFICATION_TYPE_PACKET_BEGIN"; + case BT_NOTIFICATION_TYPE_PACKET_END: + return "BT_NOTIFICATION_TYPE_PACKET_END"; + case BT_NOTIFICATION_TYPE_DISCARDED_EVENTS: + return "BT_NOTIFICATION_TYPE_DISCARDED_EVENTS"; + case BT_NOTIFICATION_TYPE_DISCARDED_PACKETS: + return "BT_NOTIFICATION_TYPE_DISCARDED_PACKETS"; + default: + return "(unknown)"; + } } -#endif -#endif /* BABELTRACE_COMPONENT_NOTIFICATION_NOTIFICATION_INTERNAL_H */ +#endif /* BABELTRACE_GRAPH_NOTIFICATION_NOTIFICATION_INTERNAL_H */