-
-BT_HIDDEN
-enum bt_component_status pretty_print_discarded_elements(
- struct pretty_component *pretty,
- struct bt_notification *notif)
-{
- enum bt_component_status ret = BT_COMPONENT_STATUS_OK;
- struct bt_stream *stream = NULL;
- struct bt_stream_class *stream_class = NULL;
- struct bt_trace *trace = NULL;
- const char *stream_name;
- const char *trace_name;
- const unsigned char *trace_uuid;
- int64_t stream_class_id;
- int64_t stream_id;
- bool is_discarded_events;
- int64_t count;
- struct bt_clock_value *clock_value = NULL;
-
- /* Stream name */
- switch (bt_notification_get_type(notif)) {
- case BT_NOTIFICATION_TYPE_DISCARDED_EVENTS:
- stream = bt_notification_discarded_events_borrow_stream(notif);
- count = bt_notification_discarded_events_get_count(notif);
- is_discarded_events = true;
- break;
- case BT_NOTIFICATION_TYPE_DISCARDED_PACKETS:
- stream = bt_notification_discarded_packets_borrow_stream(notif);
- count = bt_notification_discarded_packets_get_count(notif);
- is_discarded_events = false;
- break;
- default:
- abort();
- }
-
- BT_ASSERT(stream);
- stream_name = bt_stream_get_name(stream);
-
- /* Stream class ID */
- stream_class = bt_stream_borrow_class(stream);
- BT_ASSERT(stream_class);
- stream_class_id = bt_stream_class_get_id(stream_class);
-
- /* Stream ID */
- stream_id = bt_stream_get_id(stream);
-
- /* Trace path */
- trace = bt_stream_class_borrow_trace(stream_class);
- BT_ASSERT(trace);
- trace_name = bt_trace_get_name(trace);
- if (!trace_name) {
- trace_name = "(unknown)";
- }
-
- /* Trace UUID */
- trace_uuid = bt_trace_get_uuid(trace);
-
- /*
- * Print to standard error stream to remain backward compatible
- * with Babeltrace 1.
- */
- fprintf(stderr,
- "%s%sWARNING%s%s: Tracer discarded %" PRId64 " %s%s between [",
- bt_common_color_fg_yellow(),
- bt_common_color_bold(),
- bt_common_color_reset(),
- bt_common_color_fg_yellow(),
- count, is_discarded_events ? "event" : "packet",
- count == 1 ? "" : "s");
- g_string_assign(pretty->string, "");
- clock_value = is_discarded_events ?
- bt_notification_discarded_events_borrow_begin_clock_value(notif) :
- bt_notification_discarded_packets_borrow_begin_clock_value(notif);
- print_timestamp_wall(pretty, clock_value);
- fprintf(stderr, "%s] and [", pretty->string->str);
- g_string_assign(pretty->string, "");
- clock_value = is_discarded_events ?
- bt_notification_discarded_events_borrow_end_clock_value(notif) :
- bt_notification_discarded_packets_borrow_end_clock_value(notif);
- print_timestamp_wall(pretty, clock_value);
- fprintf(stderr, "%s] in trace \"%s\" ",
- pretty->string->str, trace_name);
-
- if (trace_uuid) {
- fprintf(stderr,
- "(UUID: %02x%02x%02x%02x-%02x%02x-%02x%02x-%02x%02x-%02x%02x%02x%02x%02x%02x) ",
- trace_uuid[0],
- trace_uuid[1],
- trace_uuid[2],
- trace_uuid[3],
- trace_uuid[4],
- trace_uuid[5],
- trace_uuid[6],
- trace_uuid[7],
- trace_uuid[8],
- trace_uuid[9],
- trace_uuid[10],
- trace_uuid[11],
- trace_uuid[12],
- trace_uuid[13],
- trace_uuid[14],
- trace_uuid[15]);
- } else {
- fprintf(stderr, "(no UUID) ");
- }
-
- fprintf(stderr, "within stream \"%s\" (stream class ID: %" PRId64 ", ",
- stream_name, stream_class_id);
-
- if (stream_id >= 0) {
- fprintf(stderr, "stream ID: %" PRId64, stream_id);
- } else {
- fprintf(stderr, "no stream ID");
- }
-
- fprintf(stderr, ").%s\n", bt_common_color_reset());
- return ret;
-}