sink.utils.counter: handle all types of messages
authorPhilippe Proulx <eeppeliteloop@gmail.com>
Wed, 6 Mar 2019 23:14:52 +0000 (18:14 -0500)
committerJérémie Galarneau <jeremie.galarneau@efficios.com>
Fri, 3 May 2019 22:19:38 +0000 (18:19 -0400)
Signed-off-by: Philippe Proulx <eeppeliteloop@gmail.com>
plugins/utils/counter/counter.c
plugins/utils/counter/counter.h

index dab2d6bcfc6878a5580bef190a0d05f490e54018..f834378875fc058ef8d0f07e068f34bfaccc27e8 100644 (file)
 
 #include "counter.h"
 
-#define PRINTF_COUNT(_what_sing, _what_plur, _var, args...)            \
+#define PRINTF_COUNT(_what, _var, args...)                             \
        do {                                                            \
                if (counter->count._var != 0 || !counter->hide_zero) {  \
-                       printf("%15" PRIu64 " %s\n",                    \
+                       printf("%15" PRIu64 " %s message%s\n",          \
                                counter->count._var,                    \
-                               counter->count._var == 1 ? _what_sing : _what_plur); \
+                               (_what),                                \
+                               counter->count._var == 1 ? "" : "s");   \
                }                                                       \
        } while (0)
 
@@ -48,8 +49,12 @@ uint64_t get_total_count(struct counter *counter)
        return counter->count.event +
                counter->count.stream_begin +
                counter->count.stream_end +
+               counter->count.stream_activity_begin +
+               counter->count.stream_activity_end +
                counter->count.packet_begin +
                counter->count.packet_end +
+               counter->count.disc_events +
+               counter->count.disc_packets +
                counter->count.msg_iter_inactivity +
                counter->count.other;
 }
@@ -59,17 +64,19 @@ void print_count(struct counter *counter)
 {
        uint64_t total = get_total_count(counter);
 
-       PRINTF_COUNT("event", "events", event);
-       PRINTF_COUNT("stream beginning", "stream beginnings", stream_begin);
-       PRINTF_COUNT("stream end", "stream ends", stream_end);
-       PRINTF_COUNT("packet beginning", "packet beginnings", packet_begin);
-       PRINTF_COUNT("packet end", "packet ends", packet_end);
-       PRINTF_COUNT("message iterator inactivity",
-                       "message iterator inactivities", msg_iter_inactivity);
+       PRINTF_COUNT("Event", event);
+       PRINTF_COUNT("Stream beginning", stream_begin);
+       PRINTF_COUNT("Stream end", stream_end);
+       PRINTF_COUNT("Stream activity beginning", stream_activity_begin);
+       PRINTF_COUNT("Stream activity end", stream_activity_end);
+       PRINTF_COUNT("Packet beginning", packet_begin);
+       PRINTF_COUNT("Packet end", packet_end);
+       PRINTF_COUNT("Discarded event", disc_events);
+       PRINTF_COUNT("Discarded packet", disc_packets);
+       PRINTF_COUNT("Message iterator inactivity", msg_iter_inactivity);
 
        if (counter->count.other > 0) {
-               PRINTF_COUNT("  other (unknown) message",
-                       "  other (unknown) messages", other);
+               PRINTF_COUNT("Other (unknown)", other);
        }
 
        printf("%s%15" PRIu64 " message%s (TOTAL)%s\n",
@@ -246,6 +253,12 @@ bt_self_component_status counter_consume(
                        case BT_MESSAGE_TYPE_EVENT:
                                counter->count.event++;
                                break;
+                       case BT_MESSAGE_TYPE_PACKET_BEGINNING:
+                               counter->count.packet_begin++;
+                               break;
+                       case BT_MESSAGE_TYPE_PACKET_END:
+                               counter->count.packet_end++;
+                               break;
                        case BT_MESSAGE_TYPE_MESSAGE_ITERATOR_INACTIVITY:
                                counter->count.msg_iter_inactivity++;
                                break;
@@ -255,11 +268,17 @@ bt_self_component_status counter_consume(
                        case BT_MESSAGE_TYPE_STREAM_END:
                                counter->count.stream_end++;
                                break;
-                       case BT_MESSAGE_TYPE_PACKET_BEGINNING:
-                               counter->count.packet_begin++;
+                       case BT_MESSAGE_TYPE_STREAM_ACTIVITY_BEGINNING:
+                               counter->count.stream_activity_begin++;
                                break;
-                       case BT_MESSAGE_TYPE_PACKET_END:
-                               counter->count.packet_end++;
+                       case BT_MESSAGE_TYPE_STREAM_ACTIVITY_END:
+                               counter->count.stream_activity_end++;
+                               break;
+                       case BT_MESSAGE_TYPE_DISCARDED_EVENTS:
+                               counter->count.disc_events++;
+                               break;
+                       case BT_MESSAGE_TYPE_DISCARDED_PACKETS:
+                               counter->count.disc_packets++;
                                break;
                        default:
                                counter->count.other++;
index 2994eb479aa787557c450ee2ff6bdcee6bdc3307..784faf0fad89d4cfd1dfd6925c67ff420030d3bf 100644 (file)
@@ -34,8 +34,12 @@ struct counter {
                uint64_t event;
                uint64_t stream_begin;
                uint64_t stream_end;
+               uint64_t stream_activity_begin;
+               uint64_t stream_activity_end;
                uint64_t packet_begin;
                uint64_t packet_end;
+               uint64_t disc_events;
+               uint64_t disc_packets;
                uint64_t msg_iter_inactivity;
                uint64_t other;
        } count;
This page took 0.027356 seconds and 4 git commands to generate.