lib: make packets and packet messages optional, disabled by default
[babeltrace.git] / src / plugins / text / details / write.c
index 3ea4d41c97fbdbaf38ec42f20fdbcc678ad6417c..1606599c28fec3a9c751fadf1de30d01b120df16 100644 (file)
@@ -26,6 +26,7 @@
 
 #include "common/assert.h"
 #include "common/common.h"
+#include "common/uuid.h"
 #include "details.h"
 #include "write.h"
 #include "obj-lifetime-mgmt.h"
@@ -329,24 +330,9 @@ void write_uuid_prop_line(struct details_write_ctx *ctx, const char *prop_name,
        write_indent(ctx);
        write_prop_name(ctx, prop_name);
        g_string_append_printf(ctx->str,
-               ": %s%02x%02x%02x%02x-%02x%02x-%02x%02x-%02x%02x-%02x%02x%02x%02x%02x%02x%s\n",
+               ": %s" BT_UUID_FMT "%s\n",
                color_bold(ctx),
-               (unsigned int) uuid[0],
-               (unsigned int) uuid[1],
-               (unsigned int) uuid[2],
-               (unsigned int) uuid[3],
-               (unsigned int) uuid[4],
-               (unsigned int) uuid[5],
-               (unsigned int) uuid[6],
-               (unsigned int) uuid[7],
-               (unsigned int) uuid[8],
-               (unsigned int) uuid[9],
-               (unsigned int) uuid[10],
-               (unsigned int) uuid[11],
-               (unsigned int) uuid[12],
-               (unsigned int) uuid[13],
-               (unsigned int) uuid[14],
-               (unsigned int) uuid[15],
+               BT_UUID_FMT_VALUES(uuid),
                color_reset(ctx));
 }
 
@@ -1039,23 +1025,36 @@ void write_stream_class(struct details_write_ctx *ctx,
 
        /* Write configuration */
        write_bool_prop_line(ctx,
-               "Packets have beginning default clock snapshot",
-               bt_stream_class_packets_have_beginning_default_clock_snapshot(sc));
-       write_bool_prop_line(ctx,
-               "Packets have end default clock snapshot",
-               bt_stream_class_packets_have_end_default_clock_snapshot(sc));
+               "Supports packets", bt_stream_class_supports_packets(sc));
+
+       if (bt_stream_class_supports_packets(sc)) {
+               write_bool_prop_line(ctx,
+                       "Packets have beginning default clock snapshot",
+                       bt_stream_class_packets_have_beginning_default_clock_snapshot(sc));
+               write_bool_prop_line(ctx,
+                       "Packets have end default clock snapshot",
+                       bt_stream_class_packets_have_end_default_clock_snapshot(sc));
+       }
+
        write_bool_prop_line(ctx,
                "Supports discarded events",
                bt_stream_class_supports_discarded_events(sc));
-       write_bool_prop_line(ctx,
-               "Discarded events have default clock snapshots",
-               bt_stream_class_discarded_events_have_default_clock_snapshots(sc));
+
+       if (bt_stream_class_supports_discarded_events(sc)) {
+               write_bool_prop_line(ctx,
+                       "Discarded events have default clock snapshots",
+                       bt_stream_class_discarded_events_have_default_clock_snapshots(sc));
+       }
+
        write_bool_prop_line(ctx,
                "Supports discarded packets",
                bt_stream_class_supports_discarded_packets(sc));
-       write_bool_prop_line(ctx,
-               "Discarded packets have default clock snapshots",
-               bt_stream_class_discarded_packets_have_default_clock_snapshots(sc));
+
+       if (bt_stream_class_supports_discarded_packets(sc)) {
+               write_bool_prop_line(ctx,
+                       "Discarded packets have default clock snapshots",
+                       bt_stream_class_discarded_packets_have_default_clock_snapshots(sc));
+       }
 
        /* Write default clock class */
        if (bt_stream_class_borrow_default_clock_class_const(sc)) {
@@ -1121,97 +1120,12 @@ static
 void write_trace_class(struct details_write_ctx *ctx, const bt_trace_class *tc)
 {
        GPtrArray *stream_classes = g_ptr_array_new();
-       GPtrArray *env_names = g_ptr_array_new();
-       uint64_t env_count;
        uint64_t i;
        bool printed_prop = false;
 
        write_indent(ctx);
        write_obj_type_name(ctx, "Trace class");
 
-       /* Write name */
-       if (ctx->details_comp->cfg.with_trace_class_name) {
-               const char *name = bt_trace_class_get_name(tc);
-
-               if (name) {
-                       g_string_append(ctx->str, " `");
-                       write_str_prop_value(ctx, name);
-                       g_string_append(ctx->str, "`");
-               }
-       }
-
-       /* Write properties */
-       incr_indent(ctx);
-
-       if (ctx->details_comp->cfg.with_uuid) {
-               bt_uuid uuid = bt_trace_class_get_uuid(tc);
-
-               if (uuid) {
-                       if (!printed_prop) {
-                               g_string_append(ctx->str, ":\n");
-                               printed_prop = true;
-                       }
-
-                       write_uuid_prop_line(ctx, "UUID", uuid);
-               }
-       }
-
-       /* Write environment */
-       env_count = bt_trace_class_get_environment_entry_count(tc);
-       if (env_count > 0) {
-               if (!printed_prop) {
-                       g_string_append(ctx->str, ":\n");
-                       printed_prop = true;
-               }
-
-               write_indent(ctx);
-               write_prop_name(ctx, "Environment");
-               g_string_append(ctx->str, " (");
-               write_uint_prop_value(ctx, env_count);
-               g_string_append_printf(ctx->str, " entr%s):",
-                       env_count == 1 ? "y" : "ies");
-               write_nl(ctx);
-               incr_indent(ctx);
-
-               for (i = 0; i < env_count; i++) {
-                       const char *name;
-                       const bt_value *value;
-
-                       bt_trace_class_borrow_environment_entry_by_index_const(
-                               tc, i, &name, &value);
-                       g_ptr_array_add(env_names, (gpointer) name);
-               }
-
-               g_ptr_array_sort(env_names, (GCompareFunc) compare_strings);
-
-               for (i = 0; i < env_names->len; i++) {
-                       const char *name = env_names->pdata[i];
-                       const bt_value *value =
-                               bt_trace_class_borrow_environment_entry_value_by_name_const(
-                                       tc, name);
-
-                       BT_ASSERT(value);
-                       write_compound_member_name(ctx, name);
-                       write_sp(ctx);
-
-                       if (bt_value_get_type(value) ==
-                                       BT_VALUE_TYPE_SIGNED_INTEGER) {
-                               write_int_prop_value(ctx,
-                                       bt_value_signed_integer_get(value));
-                       } else if (bt_value_get_type(value) ==
-                                       BT_VALUE_TYPE_STRING) {
-                               write_str_prop_value(ctx,
-                                       bt_value_string_get(value));
-                       } else {
-                               abort();
-                       }
-
-                       write_nl(ctx);
-               }
-
-               decr_indent(ctx);
-       }
-
        for (i = 0; i < bt_trace_class_get_stream_class_count(tc); i++) {
                g_ptr_array_add(stream_classes,
                        (gpointer) bt_trace_class_borrow_stream_class_by_index_const(
@@ -1227,18 +1141,18 @@ void write_trace_class(struct details_write_ctx *ctx, const bt_trace_class *tc)
                }
        }
 
+       incr_indent(ctx);
+
        for (i = 0; i < stream_classes->len; i++) {
                write_stream_class(ctx, stream_classes->pdata[i]);
        }
 
-       decr_indent(ctx);
-
        if (!printed_prop) {
                write_nl(ctx);
        }
 
+       decr_indent(ctx);
        g_ptr_array_free(stream_classes, TRUE);
-       g_ptr_array_free(env_names, TRUE);
 }
 
 static
@@ -1716,10 +1630,11 @@ static
 void write_trace(struct details_write_ctx *ctx, const bt_trace *trace)
 {
        const char *name;
-       const bt_trace_class *tc = bt_trace_borrow_class_const(trace);
        GPtrArray *streams = g_ptr_array_new();
        uint64_t i;
        bool printed_prop = false;
+       GPtrArray *env_names = g_ptr_array_new();
+       uint64_t env_count;
 
        write_indent(ctx);
        write_obj_type_name(ctx, "Trace");
@@ -1737,29 +1652,74 @@ void write_trace(struct details_write_ctx *ctx, const bt_trace *trace)
        /* Write properties */
        incr_indent(ctx);
 
-       if (ctx->details_comp->cfg.with_trace_class_name) {
-               name = bt_trace_class_get_name(tc);
-               if (name) {
+       /* Write UUID */
+       if (ctx->details_comp->cfg.with_uuid) {
+               bt_uuid uuid = bt_trace_get_uuid(trace);
+
+               if (uuid) {
                        if (!printed_prop) {
                                g_string_append(ctx->str, ":\n");
                                printed_prop = true;
                        }
 
-                       write_str_prop_line(ctx, "Class name", name);
+                       write_uuid_prop_line(ctx, "UUID", uuid);
                }
        }
 
-       if (ctx->details_comp->cfg.with_uuid) {
-               bt_uuid uuid = bt_trace_class_get_uuid(tc);
+       /* Write environment */
+       env_count = bt_trace_get_environment_entry_count(trace);
+       if (env_count > 0) {
+               if (!printed_prop) {
+                       g_string_append(ctx->str, ":\n");
+                       printed_prop = true;
+               }
 
-               if (uuid) {
-                       if (!printed_prop) {
-                               g_string_append(ctx->str, ":\n");
-                               printed_prop = true;
+               write_indent(ctx);
+               write_prop_name(ctx, "Environment");
+               g_string_append(ctx->str, " (");
+               write_uint_prop_value(ctx, env_count);
+               g_string_append_printf(ctx->str, " entr%s):",
+                       env_count == 1 ? "y" : "ies");
+               write_nl(ctx);
+               incr_indent(ctx);
+
+               for (i = 0; i < env_count; i++) {
+                       const char *name;
+                       const bt_value *value;
+
+                       bt_trace_borrow_environment_entry_by_index_const(
+                               trace, i, &name, &value);
+                       g_ptr_array_add(env_names, (gpointer) name);
+               }
+
+               g_ptr_array_sort(env_names, (GCompareFunc) compare_strings);
+
+               for (i = 0; i < env_names->len; i++) {
+                       const char *name = env_names->pdata[i];
+                       const bt_value *value =
+                               bt_trace_borrow_environment_entry_value_by_name_const(
+                                       trace, name);
+
+                       BT_ASSERT(value);
+                       write_compound_member_name(ctx, name);
+                       write_sp(ctx);
+
+                       if (bt_value_get_type(value) ==
+                                       BT_VALUE_TYPE_SIGNED_INTEGER) {
+                               write_int_prop_value(ctx,
+                                       bt_value_signed_integer_get(value));
+                       } else if (bt_value_get_type(value) ==
+                                       BT_VALUE_TYPE_STRING) {
+                               write_str_prop_value(ctx,
+                                       bt_value_string_get(value));
+                       } else {
+                               abort();
                        }
 
-                       write_uuid_prop_line(ctx, "Class UUID", uuid);
+                       write_nl(ctx);
                }
+
+               decr_indent(ctx);
        }
 
        for (i = 0; i < bt_trace_get_stream_count(trace); i++) {
@@ -1796,6 +1756,7 @@ void write_trace(struct details_write_ctx *ctx, const bt_trace *trace)
        }
 
        g_ptr_array_free(streams, TRUE);
+       g_ptr_array_free(env_names, TRUE);
 }
 
 static
@@ -1807,6 +1768,7 @@ int write_stream_beginning_message(struct details_write_ctx *ctx,
                bt_message_stream_beginning_borrow_stream_const(msg);
        const bt_trace *trace = bt_stream_borrow_trace_const(stream);
        const bt_stream_class *sc = bt_stream_borrow_class_const(stream);
+       const bt_clock_class *cc = bt_stream_class_borrow_default_clock_class_const(sc);
        const bt_trace_class *tc = bt_stream_class_borrow_trace_class_const(sc);
        const char *name;
 
@@ -1815,6 +1777,19 @@ int write_stream_beginning_message(struct details_write_ctx *ctx,
                goto end;
        }
 
+       /* Write time */
+       if (cc) {
+               const bt_clock_snapshot *cs;
+               bt_message_stream_clock_snapshot_state cs_state =
+                       bt_message_stream_beginning_borrow_default_clock_snapshot_const(msg, &cs);
+
+               if (cs_state == BT_MESSAGE_STREAM_CLOCK_SNAPSHOT_STATE_KNOWN) {
+                       write_time(ctx, cs);
+               } else {
+                       write_time_str(ctx, "Unknown");
+               }
+       }
+
        /* Write follow tag for message */
        ret = write_message_follow_tag(ctx, stream);
        if (ret) {
@@ -1860,87 +1835,22 @@ int write_stream_end_message(struct details_write_ctx *ctx,
        int ret = 0;
        const bt_stream *stream =
                bt_message_stream_end_borrow_stream_const(msg);
-
-       /* Write follow tag for message */
-       ret = write_message_follow_tag(ctx, stream);
-       if (ret) {
-               goto end;
-       }
-
-       /* Write stream properties */
-       write_obj_type_name(ctx, "Stream end\n");
-
-end:
-       return ret;
-}
-
-static
-int write_stream_activity_beginning_message(struct details_write_ctx *ctx,
-               const bt_message *msg)
-{
-       int ret = 0;
-       const bt_stream *stream =
-               bt_message_stream_activity_beginning_borrow_stream_const(msg);
-       bt_message_stream_activity_clock_snapshot_state cs_state;
-       const bt_clock_snapshot *cs = NULL;
+       const bt_stream_class *sc =
+               bt_stream_borrow_class_const(stream);
+       const bt_clock_class *cc =
+               bt_stream_class_borrow_default_clock_class_const(sc);
 
        /* Write time */
-       cs_state = bt_message_stream_activity_beginning_borrow_default_clock_snapshot_const(
-               msg, &cs);
-       switch (cs_state) {
-       case BT_MESSAGE_STREAM_ACTIVITY_CLOCK_SNAPSHOT_STATE_KNOWN:
-               BT_ASSERT(cs);
-               write_time(ctx, cs);
-               break;
-       case BT_MESSAGE_STREAM_ACTIVITY_CLOCK_SNAPSHOT_STATE_UNKNOWN:
-               write_time_str(ctx, "Unknown");
-               break;
-       case BT_MESSAGE_STREAM_ACTIVITY_CLOCK_SNAPSHOT_STATE_INFINITE:
-               write_time_str(ctx, "-Infinity");
-               break;
-       default:
-               abort();
-       }
+       if (cc) {
+               const bt_clock_snapshot *cs;
+               bt_message_stream_clock_snapshot_state cs_state =
+                       bt_message_stream_end_borrow_default_clock_snapshot_const(msg, &cs);
 
-       /* Write follow tag for message */
-       ret = write_message_follow_tag(ctx, stream);
-       if (ret) {
-               goto end;
-       }
-
-       write_obj_type_name(ctx, "Stream activity beginning");
-       write_nl(ctx);
-
-end:
-       return ret;
-}
-
-static
-int write_stream_activity_end_message(struct details_write_ctx *ctx,
-               const bt_message *msg)
-{
-       int ret = 0;
-       const bt_stream *stream =
-               bt_message_stream_activity_end_borrow_stream_const(msg);
-       bt_message_stream_activity_clock_snapshot_state cs_state;
-       const bt_clock_snapshot *cs = NULL;
-
-       /* Write time */
-       cs_state = bt_message_stream_activity_end_borrow_default_clock_snapshot_const(
-               msg, &cs);
-       switch (cs_state) {
-       case BT_MESSAGE_STREAM_ACTIVITY_CLOCK_SNAPSHOT_STATE_KNOWN:
-               BT_ASSERT(cs);
-               write_time(ctx, cs);
-               break;
-       case BT_MESSAGE_STREAM_ACTIVITY_CLOCK_SNAPSHOT_STATE_UNKNOWN:
-               write_time_str(ctx, "Unknown");
-               break;
-       case BT_MESSAGE_STREAM_ACTIVITY_CLOCK_SNAPSHOT_STATE_INFINITE:
-               write_time_str(ctx, "+Infinity");
-               break;
-       default:
-               abort();
+               if (cs_state == BT_MESSAGE_STREAM_CLOCK_SNAPSHOT_STATE_KNOWN) {
+                       write_time(ctx, cs);
+               } else {
+                       write_time_str(ctx, "Unknown");
+               }
        }
 
        /* Write follow tag for message */
@@ -1949,8 +1859,8 @@ int write_stream_activity_end_message(struct details_write_ctx *ctx,
                goto end;
        }
 
-       write_obj_type_name(ctx, "Stream activity end");
-       write_nl(ctx);
+       /* Write stream properties */
+       write_obj_type_name(ctx, "Stream end\n");
 
 end:
        return ret;
@@ -2198,12 +2108,6 @@ int details_write_message(struct details_comp *details_comp,
        case BT_MESSAGE_TYPE_PACKET_END:
                ret = write_packet_end_message(&ctx, msg);
                break;
-       case BT_MESSAGE_TYPE_STREAM_ACTIVITY_BEGINNING:
-               ret = write_stream_activity_beginning_message(&ctx, msg);
-               break;
-       case BT_MESSAGE_TYPE_STREAM_ACTIVITY_END:
-               ret = write_stream_activity_end_message(&ctx, msg);
-               break;
        case BT_MESSAGE_TYPE_DISCARDED_EVENTS:
                ret = write_discarded_events_message(&ctx, msg);
                break;
This page took 0.029453 seconds and 4 git commands to generate.