From dbff633806ffcd0a75714bd444489d06a3ded5ab Mon Sep 17 00:00:00 2001 From: Philippe Proulx Date: Mon, 19 Jun 2017 18:42:11 -0400 Subject: [PATCH] lib/graph/notification/packet.c: add logging MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit Signed-off-by: Philippe Proulx Signed-off-by: Jérémie Galarneau --- lib/graph/notification/packet.c | 88 +++++++++++++++++++++++++++++++++ 1 file changed, 88 insertions(+) diff --git a/lib/graph/notification/packet.c b/lib/graph/notification/packet.c index fa6a0ee3..712d1c41 100644 --- a/lib/graph/notification/packet.c +++ b/lib/graph/notification/packet.c @@ -24,8 +24,16 @@ * SOFTWARE. */ +#define BT_LOG_TAG "NOTIF-PACKET" +#include + #include +#include +#include +#include +#include #include +#include static void bt_notification_packet_begin_destroy(struct bt_object *obj) @@ -33,6 +41,9 @@ void bt_notification_packet_begin_destroy(struct bt_object *obj) struct bt_notification_packet_begin *notification = (struct bt_notification_packet_begin *) obj; + BT_LOGD("Destroying packet beginning notification: addr=%p", + notification); + BT_LOGD_STR("Putting packet."); BT_PUT(notification->packet); g_free(notification); } @@ -43,6 +54,9 @@ void bt_notification_packet_end_destroy(struct bt_object *obj) struct bt_notification_packet_end *notification = (struct bt_notification_packet_end *) obj; + BT_LOGD("Destroying packet end notification: addr=%p", + notification); + BT_LOGD_STR("Putting packet."); BT_PUT(notification->packet); g_free(notification); } @@ -51,16 +65,44 @@ struct bt_notification *bt_notification_packet_begin_create( struct bt_ctf_packet *packet) { struct bt_notification_packet_begin *notification; + struct bt_ctf_stream *stream; + struct bt_ctf_stream_class *stream_class; if (!packet) { + BT_LOGW_STR("Invalid parameter: packet is NULL."); goto error; } + stream = bt_ctf_packet_borrow_stream(packet); + assert(stream); + stream_class = bt_ctf_stream_borrow_stream_class(stream); + assert(stream_class); + BT_LOGD("Creating packet beginning notification object: " + "packet-addr=%p, stream-addr=%p, stream-name=\"%s\", " + "stream-class-addr=%p, stream-class-name=\"%s\", " + "stream-class-id=%" PRId64, + packet, 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)); notification = g_new0(struct bt_notification_packet_begin, 1); + if (!notification) { + BT_LOGE_STR("Failed to allocate one packet beginning notification."); + goto error; + } + bt_notification_init(¬ification->parent, BT_NOTIFICATION_TYPE_PACKET_BEGIN, bt_notification_packet_begin_destroy); notification->packet = bt_get(packet); + BT_LOGD("Created packet beginning notification object: " + "packet-addr=%p, stream-addr=%p, stream-name=\"%s\", " + "stream-class-addr=%p, stream-class-name=\"%s\", " + "stream-class-id=%" PRId64 ", addr=%p", + packet, 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), notification); return ¬ification->parent; error: return NULL; @@ -72,7 +114,16 @@ struct bt_ctf_packet *bt_notification_packet_begin_get_packet( struct bt_ctf_packet *ret = NULL; struct bt_notification_packet_begin *packet_begin; + if (!notification) { + BT_LOGW_STR("Invalid parameter: notification is NULL."); + goto end; + } + if (notification->type != BT_NOTIFICATION_TYPE_PACKET_BEGIN) { + BT_LOGW("Invalid parameter: notification is not a packet beginning notification: " + "addr%p, notif-type=%s", + notification, bt_notification_type_string( + bt_notification_get_type(notification))); goto end; } @@ -87,16 +138,44 @@ struct bt_notification *bt_notification_packet_end_create( struct bt_ctf_packet *packet) { struct bt_notification_packet_end *notification; + struct bt_ctf_stream *stream; + struct bt_ctf_stream_class *stream_class; if (!packet) { + BT_LOGW_STR("Invalid parameter: packet is NULL."); goto error; } + stream = bt_ctf_packet_borrow_stream(packet); + assert(stream); + stream_class = bt_ctf_stream_borrow_stream_class(stream); + assert(stream_class); + BT_LOGD("Creating packet end notification object: " + "packet-addr=%p, stream-addr=%p, stream-name=\"%s\", " + "stream-class-addr=%p, stream-class-name=\"%s\", " + "stream-class-id=%" PRId64, + packet, 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)); notification = g_new0(struct bt_notification_packet_end, 1); + if (!notification) { + BT_LOGE_STR("Failed to allocate one packet end notification."); + goto error; + } + bt_notification_init(¬ification->parent, BT_NOTIFICATION_TYPE_PACKET_END, bt_notification_packet_end_destroy); notification->packet = bt_get(packet); + BT_LOGD("Created packet end notification object: " + "packet-addr=%p, stream-addr=%p, stream-name=\"%s\", " + "stream-class-addr=%p, stream-class-name=\"%s\", " + "stream-class-id=%" PRId64 ", addr=%p", + packet, 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), notification); return ¬ification->parent; error: return NULL; @@ -108,7 +187,16 @@ struct bt_ctf_packet *bt_notification_packet_end_get_packet( struct bt_ctf_packet *ret = NULL; struct bt_notification_packet_end *packet_end; + if (!notification) { + BT_LOGW_STR("Invalid parameter: notification is NULL."); + goto end; + } + if (notification->type != BT_NOTIFICATION_TYPE_PACKET_END) { + BT_LOGW("Invalid parameter: notification is not a packet end notification: " + "addr%p, notif-type=%s", + notification, bt_notification_type_string( + bt_notification_get_type(notification))); goto end; } -- 2.34.1