+
+BT_HIDDEN
+int pretty_print_discarded_items(struct pretty_component *pretty,
+ const bt_message *msg)
+{
+ const bt_clock_snapshot *begin = NULL;
+ const bt_clock_snapshot *end = NULL;
+ const bt_stream *stream;
+ const bt_stream_class *stream_class;
+ uint64_t count = UINT64_C(-1);
+ const char *elem_type;
+
+ switch (bt_message_get_type(msg)) {
+ case BT_MESSAGE_TYPE_DISCARDED_EVENTS:
+ stream = bt_message_discarded_events_borrow_stream_const(msg);
+
+ if (bt_message_discarded_events_get_count(msg, &count) ==
+ BT_PROPERTY_AVAILABILITY_NOT_AVAILABLE) {
+ count = UINT64_C(-1);
+ }
+
+ elem_type = "event";
+ break;
+ case BT_MESSAGE_TYPE_DISCARDED_PACKETS:
+ stream = bt_message_discarded_packets_borrow_stream_const(msg);
+
+ if (bt_message_discarded_packets_get_count(msg, &count) ==
+ BT_PROPERTY_AVAILABILITY_NOT_AVAILABLE) {
+ count = UINT64_C(-1);
+ }
+
+ elem_type = "packet";
+ break;
+ default:
+ abort();
+ }
+
+ BT_ASSERT(stream);
+ stream_class = bt_stream_borrow_class_const(stream);
+
+ if (bt_stream_class_borrow_default_clock_class_const(stream_class)) {
+ switch (bt_message_get_type(msg)) {
+ case BT_MESSAGE_TYPE_DISCARDED_EVENTS:
+ bt_message_discarded_events_borrow_default_beginning_clock_snapshot_const(
+ msg, &begin);
+ bt_message_discarded_events_borrow_default_end_clock_snapshot_const(
+ msg, &end);
+ break;
+ case BT_MESSAGE_TYPE_DISCARDED_PACKETS:
+ bt_message_discarded_packets_borrow_default_beginning_clock_snapshot_const(
+ msg, &begin);
+ bt_message_discarded_packets_borrow_default_end_clock_snapshot_const(
+ msg, &end);
+ break;
+ default:
+ abort();
+ }
+ }
+
+ print_discarded_elements_msg(pretty, stream, begin, end,
+ count, elem_type);
+ return 0;
+}