X-Git-Url: http://git.efficios.com/?a=blobdiff_plain;f=lib%2Fgraph%2Fnotification%2Fstream.c;h=84ee483a900361dd00cd1f552b091308ce8e1855;hb=8deee0391c182fffc2e3c41f343a008df0e42624;hp=40c245b53b7d4e231bfa446de8aff130433f1b43;hpb=d229f56b8df128813b6b3fb155deaf2ce015aa72;p=babeltrace.git diff --git a/lib/graph/notification/stream.c b/lib/graph/notification/stream.c index 40c245b5..84ee483a 100644 --- a/lib/graph/notification/stream.c +++ b/lib/graph/notification/stream.c @@ -29,7 +29,10 @@ #include #include +#include #include +#include +#include #include static @@ -46,38 +49,22 @@ void bt_notification_stream_end_destroy(struct bt_object *obj) } struct bt_notification *bt_notification_stream_end_create( - struct bt_ctf_stream *stream) + struct bt_stream *stream) { struct bt_notification_stream_end *notification; - struct bt_ctf_stream_class *stream_class; - - if (!stream) { - BT_LOGW_STR("Invalid parameter: stream is NULL."); - goto error; - } - - stream_class = bt_ctf_stream_borrow_stream_class(stream); - assert(stream_class); - - if (stream->pos.fd >= 0) { - BT_LOGW("Invalid parameter: stream is a CTF writer stream: " - "stream-addr=%p, stream-name=\"%s\", " - "stream-class-addr=%p, stream-class-name\"%s\", " - "stream-class-id=%" PRId64, - stream, bt_ctf_stream_get_name(stream), stream_class, - bt_ctf_stream_class_get_name(stream_class), - bt_ctf_stream_class_get_id(stream_class)); - goto error; - } + struct bt_stream_class *stream_class; + BT_ASSERT_PRE_NON_NULL(stream, "Stream"); + stream_class = bt_stream_borrow_class(stream); + BT_ASSERT(stream_class); BT_LOGD("Creating stream end notification object: " "stream-addr=%p, stream-name=\"%s\", " "stream-class-addr=%p, stream-class-name=\"%s\", " "stream-class-id=%" PRId64, - stream, bt_ctf_stream_get_name(stream), + stream, bt_stream_get_name(stream), stream_class, - bt_ctf_stream_class_get_name(stream_class), - bt_ctf_stream_class_get_id(stream_class)); + bt_stream_class_get_name(stream_class), + bt_stream_class_get_id(stream_class)); notification = g_new0(struct bt_notification_stream_end, 1); if (!notification) { BT_LOGE_STR("Failed to allocate one stream end notification."); @@ -92,40 +79,26 @@ struct bt_notification *bt_notification_stream_end_create( "stream-addr=%p, stream-name=\"%s\", " "stream-class-addr=%p, stream-class-name=\"%s\", " "stream-class-id=%" PRId64 ", addr=%p", - stream, bt_ctf_stream_get_name(stream), + stream, bt_stream_get_name(stream), stream_class, - bt_ctf_stream_class_get_name(stream_class), - bt_ctf_stream_class_get_id(stream_class), notification); + bt_stream_class_get_name(stream_class), + bt_stream_class_get_id(stream_class), notification); return ¬ification->parent; error: return NULL; } -struct bt_ctf_stream *bt_notification_stream_end_get_stream( +struct bt_stream *bt_notification_stream_end_get_stream( struct bt_notification *notification) { struct bt_notification_stream_end *stream_end; - struct bt_ctf_stream *stream = NULL; - - if (!notification) { - BT_LOGW_STR("Invalid parameter: notification is NULL."); - goto end; - } - - if (notification->type != BT_NOTIFICATION_TYPE_STREAM_END) { - BT_LOGW("Invalid parameter: notification is not a stream end notification: " - "addr%p, notif-type=%s", - notification, bt_notification_type_string( - bt_notification_get_type(notification))); - goto end; - } + BT_ASSERT_PRE_NON_NULL(notification, "Notification"); + BT_ASSERT_PRE_NOTIF_IS_TYPE(notification, + BT_NOTIFICATION_TYPE_STREAM_END); stream_end = container_of(notification, struct bt_notification_stream_end, parent); - stream = bt_get(stream_end->stream); - -end: - return stream; + return bt_get(stream_end->stream); } static @@ -142,38 +115,22 @@ void bt_notification_stream_begin_destroy(struct bt_object *obj) } struct bt_notification *bt_notification_stream_begin_create( - struct bt_ctf_stream *stream) + struct bt_stream *stream) { struct bt_notification_stream_begin *notification; - struct bt_ctf_stream_class *stream_class; - - if (!stream) { - BT_LOGW_STR("Invalid parameter: stream is NULL."); - goto error; - } - - stream_class = bt_ctf_stream_borrow_stream_class(stream); - assert(stream_class); - - if (stream->pos.fd >= 0) { - BT_LOGW("Invalid parameter: stream is a CTF writer stream: " - "stream-addr=%p, stream-name=\"%s\", " - "stream-class-addr=%p, stream-class-name\"%s\", " - "stream-class-id=%" PRId64, - stream, bt_ctf_stream_get_name(stream), stream_class, - bt_ctf_stream_class_get_name(stream_class), - bt_ctf_stream_class_get_id(stream_class)); - goto error; - } + struct bt_stream_class *stream_class; + BT_ASSERT_PRE_NON_NULL(stream, "Stream"); + stream_class = bt_stream_borrow_class(stream); + BT_ASSERT(stream_class); BT_LOGD("Creating stream beginning notification object: " "stream-addr=%p, stream-name=\"%s\", " "stream-class-addr=%p, stream-class-name=\"%s\", " "stream-class-id=%" PRId64, - stream, bt_ctf_stream_get_name(stream), + stream, bt_stream_get_name(stream), stream_class, - bt_ctf_stream_class_get_name(stream_class), - bt_ctf_stream_class_get_id(stream_class)); + bt_stream_class_get_name(stream_class), + bt_stream_class_get_id(stream_class)); notification = g_new0(struct bt_notification_stream_begin, 1); if (!notification) { BT_LOGE_STR("Failed to allocate one stream beginning notification."); @@ -188,38 +145,24 @@ struct bt_notification *bt_notification_stream_begin_create( "stream-addr=%p, stream-name=\"%s\", " "stream-class-addr=%p, stream-class-name=\"%s\", " "stream-class-id=%" PRId64 ", addr=%p", - stream, bt_ctf_stream_get_name(stream), + stream, bt_stream_get_name(stream), stream_class, - bt_ctf_stream_class_get_name(stream_class), - bt_ctf_stream_class_get_id(stream_class), notification); + bt_stream_class_get_name(stream_class), + bt_stream_class_get_id(stream_class), notification); return ¬ification->parent; error: return NULL; } -struct bt_ctf_stream *bt_notification_stream_begin_get_stream( +struct bt_stream *bt_notification_stream_begin_get_stream( struct bt_notification *notification) { struct bt_notification_stream_begin *stream_begin; - struct bt_ctf_stream *stream = NULL; - - if (!notification) { - BT_LOGW_STR("Invalid parameter: notification is NULL."); - goto end; - } - - if (notification->type != BT_NOTIFICATION_TYPE_STREAM_BEGIN) { - BT_LOGW("Invalid parameter: notification is not a stream beginning notification: " - "addr%p, notif-type=%s", - notification, bt_notification_type_string( - bt_notification_get_type(notification))); - goto end; - } + BT_ASSERT_PRE_NON_NULL(notification, "Notification"); + BT_ASSERT_PRE_NOTIF_IS_TYPE(notification, + BT_NOTIFICATION_TYPE_STREAM_BEGIN); stream_begin = container_of(notification, struct bt_notification_stream_begin, parent); - stream = bt_get(stream_begin->stream); - -end: - return stream; + return bt_get(stream_begin->stream); }