sink.text.pretty: remove field filtering
[babeltrace.git] / src / plugins / text / pretty / print.c
index ed4f3a38488c132a0e66ab120ce4a06c2918fe35..b3aaeb44d030785c7064daf1114b4b1d686b8f05 100644 (file)
@@ -26,6 +26,7 @@
 #include <babeltrace2/babeltrace.h>
 #include "compat/bitfield.h"
 #include "common/common.h"
+#include "common/uuid.h"
 #include "compat/time.h"
 #include "common/assert.h"
 #include <inttypes.h>
@@ -52,29 +53,32 @@ struct timestamp {
 
 static
 int print_field(struct pretty_component *pretty,
-               const bt_field *field, bool print_names,
-               GQuark *filters_fields, int filter_array_len);
+               const bt_field *field, bool print_names);
 
 static
 void print_name_equal(struct pretty_component *pretty, const char *name)
 {
        if (pretty->use_colors) {
-               g_string_append_printf(pretty->string, "%s%s%s = ", COLOR_NAME,
-                       name, COLOR_RST);
+               g_string_append(pretty->string, COLOR_NAME);
+               g_string_append(pretty->string, name);
+               g_string_append(pretty->string, COLOR_RST);
        } else {
-               g_string_append_printf(pretty->string, "%s = ", name);
+               g_string_append(pretty->string, name);
        }
+       g_string_append(pretty->string, " = ");
 }
 
 static
 void print_field_name_equal(struct pretty_component *pretty, const char *name)
 {
        if (pretty->use_colors) {
-               g_string_append_printf(pretty->string, "%s%s%s = ",
-                       COLOR_FIELD_NAME, name, COLOR_RST);
+               g_string_append(pretty->string, COLOR_FIELD_NAME);
+               g_string_append(pretty->string, name);
+               g_string_append(pretty->string, COLOR_RST);
        } else {
-               g_string_append_printf(pretty->string, "%s = ", name);
-       }
+               g_string_append(pretty->string, name);
+}
+       g_string_append(pretty->string, " = ");
 }
 
 static
@@ -84,7 +88,7 @@ void print_timestamp_cycles(struct pretty_component *pretty,
        uint64_t cycles;
 
        cycles = bt_clock_snapshot_get_value(clock_snapshot);
-       g_string_append_printf(pretty->string, "%020" PRIu64, cycles);
+       bt_common_g_string_append_printf(pretty->string, "%020" PRIu64, cycles);
 
        if (update_last) {
                if (pretty->last_cycles_timestamp != -1ULL) {
@@ -201,13 +205,13 @@ void print_timestamp_wall(struct pretty_component *pretty,
                }
 
                /* Print time in HH:MM:SS.ns */
-               g_string_append_printf(pretty->string,
+               bt_common_g_string_append_printf(pretty->string,
                        "%02d:%02d:%02d.%09" PRIu64, tm.tm_hour, tm.tm_min,
                        tm.tm_sec, ts_nsec_abs);
                goto end;
        }
 seconds:
-       g_string_append_printf(pretty->string, "%s%" PRId64 ".%09" PRIu64,
+       bt_common_g_string_append_printf(pretty->string, "%s%" PRId64 ".%09" PRIu64,
                is_negative ? "-" : "", ts_sec_abs, ts_nsec_abs);
 end:
        return;
@@ -261,7 +265,7 @@ int print_event_timestamp(struct pretty_component *pretty,
                                g_string_append(pretty->string,
                                        "+??????????\?\?"); /* Not a trigraph. */
                        } else {
-                               g_string_append_printf(pretty->string,
+                               bt_common_g_string_append_printf(pretty->string,
                                        "+%012" PRIu64, pretty->delta_cycles);
                        }
                } else {
@@ -271,7 +275,7 @@ int print_event_timestamp(struct pretty_component *pretty,
                                delta = pretty->delta_real_timestamp;
                                delta_sec = delta / NSEC_PER_SEC;
                                delta_nsec = delta % NSEC_PER_SEC;
-                               g_string_append_printf(pretty->string,
+                               bt_common_g_string_append_printf(pretty->string,
                                        "+%" PRIu64 ".%09" PRIu64,
                                        delta_sec, delta_nsec);
                        } else {
@@ -295,9 +299,6 @@ int print_event_header(struct pretty_component *pretty,
        bool print_names = pretty->options.print_header_field_names;
        int ret = 0;
        const bt_event_class *event_class = NULL;
-       const bt_stream_class *stream_class = NULL;
-       const bt_trace_class *trace_class = NULL;
-       const bt_packet *packet = NULL;
        const bt_stream *stream = NULL;
        const bt_trace *trace = NULL;
        const bt_event *event = bt_message_event_borrow_event_const(event_msg);
@@ -306,10 +307,7 @@ int print_event_header(struct pretty_component *pretty,
        bt_property_availability prop_avail;
 
        event_class = bt_event_borrow_class_const(event);
-       stream_class = bt_event_class_borrow_stream_class_const(event_class);
-       trace_class = bt_stream_class_borrow_trace_class_const(stream_class);
-       packet = bt_event_borrow_packet_const(event);
-       stream = bt_packet_borrow_stream_const(packet);
+       stream = bt_event_borrow_stream_const(event);
        trace = bt_stream_borrow_trace_const(stream);
        ret = print_event_timestamp(pretty, event_msg, &pretty->start_line);
        if (ret) {
@@ -337,8 +335,8 @@ int print_event_header(struct pretty_component *pretty,
        if (pretty->options.print_trace_hostname_field) {
                const bt_value *hostname_str;
 
-               hostname_str = bt_trace_class_borrow_environment_entry_value_by_name_const(
-                       trace_class, "hostname");
+               hostname_str = bt_trace_borrow_environment_entry_value_by_name_const(
+                       trace, "hostname");
                if (hostname_str) {
                        const char *str;
 
@@ -356,8 +354,8 @@ int print_event_header(struct pretty_component *pretty,
        if (pretty->options.print_trace_domain_field) {
                const bt_value *domain_str;
 
-               domain_str = bt_trace_class_borrow_environment_entry_value_by_name_const(
-                       trace_class, "domain");
+               domain_str = bt_trace_borrow_environment_entry_value_by_name_const(
+                       trace, "domain");
                if (domain_str) {
                        const char *str;
 
@@ -377,8 +375,8 @@ int print_event_header(struct pretty_component *pretty,
        if (pretty->options.print_trace_procname_field) {
                const bt_value *procname_str;
 
-               procname_str = bt_trace_class_borrow_environment_entry_value_by_name_const(
-                       trace_class, "procname");
+               procname_str = bt_trace_borrow_environment_entry_value_by_name_const(
+                       trace, "procname");
                if (procname_str) {
                        const char *str;
 
@@ -398,8 +396,8 @@ int print_event_header(struct pretty_component *pretty,
        if (pretty->options.print_trace_vpid_field) {
                const bt_value *vpid_value;
 
-               vpid_value = bt_trace_class_borrow_environment_entry_value_by_name_const(
-                       trace_class, "vpid");
+               vpid_value = bt_trace_borrow_environment_entry_value_by_name_const(
+                       trace, "vpid");
                if (vpid_value) {
                        int64_t value;
 
@@ -411,8 +409,8 @@ int print_event_header(struct pretty_component *pretty,
                        } else if (dom_print) {
                                g_string_append(pretty->string, ":");
                        }
-                       value = bt_value_signed_integer_get(vpid_value);
-                       g_string_append_printf(pretty->string,
+                       value = bt_value_integer_signed_get(vpid_value);
+                       bt_common_g_string_append_printf(pretty->string,
                                "(%" PRId64 ")", value);
                        dom_print = 1;
                }
@@ -454,7 +452,7 @@ int print_event_header(struct pretty_component *pretty,
                        }
 
                        g_string_append(pretty->string, log_level_str);
-                       g_string_append_printf(
+                       bt_common_g_string_append_printf(
                                pretty->string, " (%d)", (int) log_level);
                        dom_print = 1;
                }
@@ -532,9 +530,9 @@ int print_integer(struct pretty_component *pretty,
        ft_type = bt_field_get_class_type(field);
        if (ft_type == BT_FIELD_CLASS_TYPE_UNSIGNED_INTEGER ||
                        ft_type == BT_FIELD_CLASS_TYPE_UNSIGNED_ENUMERATION) {
-               v.u = bt_field_unsigned_integer_get_value(field);
+               v.u = bt_field_integer_unsigned_get_value(field);
        } else {
-               v.s = bt_field_signed_integer_get_value(field);
+               v.s = bt_field_integer_signed_get_value(field);
        }
 
        if (pretty->use_colors) {
@@ -552,7 +550,7 @@ int print_integer(struct pretty_component *pretty,
                g_string_append(pretty->string, "0b");
                _bt_safe_lshift(v.u, 64 - len);
                for (bitnr = 0; bitnr < len; bitnr++) {
-                       g_string_append_printf(pretty->string, "%u", (v.u & (1ULL << 63)) ? 1 : 0);
+                       bt_common_g_string_append_printf(pretty->string, "%u", (v.u & (1ULL << 63)) ? 1 : 0);
                        _bt_safe_lshift(v.u, 1);
                }
                break;
@@ -575,15 +573,15 @@ int print_integer(struct pretty_component *pretty,
                        }
                }
 
-               g_string_append_printf(pretty->string, "0%" PRIo64, v.u);
+               bt_common_g_string_append_printf(pretty->string, "0%" PRIo64, v.u);
                break;
        }
        case BT_FIELD_CLASS_INTEGER_PREFERRED_DISPLAY_BASE_DECIMAL:
                if (ft_type == BT_FIELD_CLASS_TYPE_UNSIGNED_INTEGER ||
                                ft_type == BT_FIELD_CLASS_TYPE_UNSIGNED_ENUMERATION) {
-                       g_string_append_printf(pretty->string, "%" PRIu64, v.u);
+                       bt_common_g_string_append_printf(pretty->string, "%" PRIu64, v.u);
                } else {
-                       g_string_append_printf(pretty->string, "%" PRId64, v.s);
+                       bt_common_g_string_append_printf(pretty->string, "%" PRId64, v.s);
                }
                break;
        case BT_FIELD_CLASS_INTEGER_PREFERRED_DISPLAY_BASE_HEXADECIMAL:
@@ -598,7 +596,7 @@ int print_integer(struct pretty_component *pretty,
                        v.u &= ((uint64_t) 1 << rounded_len) - 1;
                }
 
-               g_string_append_printf(pretty->string, "0x%" PRIX64, v.u);
+               bt_common_g_string_append_printf(pretty->string, "0x%" PRIX64, v.u);
                break;
        }
        default:
@@ -672,7 +670,7 @@ void print_escape_string(struct pretty_component *pretty, const char *str)
                        break;
                default:
                        /* Unhandled control-sequence, print as hex. */
-                       g_string_append_printf(pretty->string, "\\x%02x", str[i]);
+                       bt_common_g_string_append_printf(pretty->string, "\\x%02x", str[i]);
                        break;
                }
        }
@@ -698,11 +696,11 @@ int print_enum(struct pretty_component *pretty,
 
        switch (bt_field_get_class_type(field)) {
        case BT_FIELD_CLASS_TYPE_UNSIGNED_ENUMERATION:
-               ret = bt_field_unsigned_enumeration_get_mapping_labels(field,
+               ret = bt_field_enumeration_unsigned_get_mapping_labels(field,
                        &label_array, &label_count);
                break;
        case BT_FIELD_CLASS_TYPE_SIGNED_ENUMERATION:
-               ret = bt_field_signed_enumeration_get_mapping_labels(field,
+               ret = bt_field_enumeration_signed_get_mapping_labels(field,
                        &label_array, &label_count);
                break;
        default:
@@ -750,31 +748,11 @@ end:
        return ret;
 }
 
-static
-int filter_field_name(struct pretty_component *pretty, const char *field_name,
-               GQuark *filter_fields, int filter_array_len)
-{
-       int i;
-       GQuark field_quark = g_quark_try_string(field_name);
-
-       if (!field_quark || pretty->options.verbose) {
-               return 1;
-       }
-
-       for (i = 0; i < filter_array_len; i++) {
-               if (field_quark == filter_fields[i]) {
-                       return 0;
-               }
-       }
-       return 1;
-}
-
 static
 int print_struct_field(struct pretty_component *pretty,
                const bt_field *_struct,
                const bt_field_class *struct_class,
-               uint64_t i, bool print_names, uint64_t *nr_printed_fields,
-               GQuark *filter_fields, int filter_array_len)
+               uint64_t i, bool print_names, uint64_t *nr_printed_fields)
 {
        int ret = 0;
        const char *field_name;
@@ -791,12 +769,6 @@ int print_struct_field(struct pretty_component *pretty,
                struct_class, i);
        field_name = bt_field_class_structure_member_get_name(member);
 
-       if (filter_fields && !filter_field_name(pretty, field_name,
-                               filter_fields, filter_array_len)) {
-               ret = 0;
-               goto end;
-       }
-
        if (*nr_printed_fields > 0) {
                g_string_append(pretty->string, ", ");
        } else {
@@ -805,7 +777,7 @@ int print_struct_field(struct pretty_component *pretty,
        if (print_names) {
                print_field_name_equal(pretty, field_name);
        }
-       ret = print_field(pretty, field, print_names, NULL, 0);
+       ret = print_field(pretty, field, print_names);
        *nr_printed_fields += 1;
 
 end:
@@ -814,8 +786,7 @@ end:
 
 static
 int print_struct(struct pretty_component *pretty,
-               const bt_field *_struct, bool print_names,
-               GQuark *filter_fields, int filter_array_len)
+               const bt_field *_struct, bool print_names)
 {
        int ret = 0;
        const bt_field_class *struct_class = NULL;
@@ -834,8 +805,7 @@ int print_struct(struct pretty_component *pretty,
        nr_printed_fields = 0;
        for (i = 0; i < nr_fields; i++) {
                ret = print_struct_field(pretty, _struct, struct_class, i,
-                               print_names, &nr_printed_fields, filter_fields,
-                               filter_array_len);
+                               print_names, &nr_printed_fields);
                if (ret != 0) {
                        goto end;
                }
@@ -859,12 +829,12 @@ int print_array_field(struct pretty_component *pretty,
                g_string_append(pretty->string, " ");
        }
        if (print_names) {
-               g_string_append_printf(pretty->string, "[%" PRIu64 "] = ", i);
+               bt_common_g_string_append_printf(pretty->string, "[%" PRIu64 "] = ", i);
        }
 
        field = bt_field_array_borrow_element_field_by_index_const(array, i);
        BT_ASSERT(field);
-       return print_field(pretty, field, print_names, NULL, 0);
+       return print_field(pretty, field, print_names);
 }
 
 static
@@ -909,12 +879,12 @@ int print_sequence_field(struct pretty_component *pretty,
                g_string_append(pretty->string, " ");
        }
        if (print_names) {
-               g_string_append_printf(pretty->string, "[%" PRIu64 "] = ", i);
+               bt_common_g_string_append_printf(pretty->string, "[%" PRIu64 "] = ", i);
        }
 
        field = bt_field_array_borrow_element_field_by_index_const(seq, i);
        BT_ASSERT(field);
-       return print_field(pretty, field, print_names, NULL, 0);
+       return print_field(pretty, field, print_names);
 }
 
 static
@@ -957,7 +927,7 @@ int print_variant(struct pretty_component *pretty,
                // TODO: find tag's name using field path
                // print_field_name_equal(pretty, tag_choice);
        }
-       ret = print_field(pretty, field, print_names, NULL, 0);
+       ret = print_field(pretty, field, print_names);
        if (ret != 0) {
                goto end;
        }
@@ -970,8 +940,7 @@ end:
 
 static
 int print_field(struct pretty_component *pretty,
-               const bt_field *field, bool print_names,
-               GQuark *filter_fields, int filter_array_len)
+               const bt_field *field, bool print_names)
 {
        bt_field_class_type class_id;
 
@@ -988,7 +957,7 @@ int print_field(struct pretty_component *pretty,
                if (pretty->use_colors) {
                        g_string_append(pretty->string, COLOR_NUMBER_VALUE);
                }
-               g_string_append_printf(pretty->string, "%g", v);
+               bt_common_g_string_append_printf(pretty->string, "%g", v);
                if (pretty->use_colors) {
                        g_string_append(pretty->string, COLOR_RST);
                }
@@ -1016,9 +985,10 @@ int print_field(struct pretty_component *pretty,
                return 0;
        }
        case BT_FIELD_CLASS_TYPE_STRUCTURE:
-               return print_struct(pretty, field, print_names, filter_fields,
-                               filter_array_len);
-       case BT_FIELD_CLASS_TYPE_VARIANT:
+               return print_struct(pretty, field, print_names);
+       case BT_FIELD_CLASS_TYPE_VARIANT_WITHOUT_SELECTOR:
+       case BT_FIELD_CLASS_TYPE_VARIANT_WITH_UNSIGNED_SELECTOR:
+       case BT_FIELD_CLASS_TYPE_VARIANT_WITH_SIGNED_SELECTOR:
                return print_variant(pretty, field, print_names);
        case BT_FIELD_CLASS_TYPE_STATIC_ARRAY:
                return print_array(pretty, field, print_names);
@@ -1041,7 +1011,6 @@ int print_stream_packet_context(struct pretty_component *pretty,
 
        packet = bt_event_borrow_packet_const(event);
        if (!packet) {
-               ret = -1;
                goto end;
        }
        main_field = bt_packet_borrow_context_field_const(packet);
@@ -1056,9 +1025,7 @@ int print_stream_packet_context(struct pretty_component *pretty,
                print_name_equal(pretty, "stream.packet.context");
        }
        ret = print_field(pretty, main_field,
-                       pretty->options.print_context_field_names,
-                       stream_packet_context_quarks,
-                       STREAM_PACKET_CONTEXT_QUARKS_LEN);
+                       pretty->options.print_context_field_names);
 
 end:
        return ret;
@@ -1083,7 +1050,7 @@ int print_stream_event_context(struct pretty_component *pretty,
                print_name_equal(pretty, "stream.event.context");
        }
        ret = print_field(pretty, main_field,
-                       pretty->options.print_context_field_names, NULL, 0);
+                       pretty->options.print_context_field_names);
 
 end:
        return ret;
@@ -1108,7 +1075,7 @@ int print_event_context(struct pretty_component *pretty,
                print_name_equal(pretty, "event.context");
        }
        ret = print_field(pretty, main_field,
-                       pretty->options.print_context_field_names, NULL, 0);
+                       pretty->options.print_context_field_names);
 
 end:
        return ret;
@@ -1133,7 +1100,7 @@ int print_event_payload(struct pretty_component *pretty,
                print_name_equal(pretty, "event.fields");
        }
        ret = print_field(pretty, main_field,
-                       pretty->options.print_payload_field_names, NULL, 0);
+                       pretty->options.print_payload_field_names);
 
 end:
        return ret;
@@ -1242,8 +1209,7 @@ int print_discarded_elements_msg(struct pretty_component *pretty,
        }
 
        /* Trace UUID */
-       trace_uuid = bt_trace_class_get_uuid(
-               bt_trace_borrow_class_const(trace));
+       trace_uuid = bt_trace_get_uuid(trace);
 
        /* Format message */
        g_string_assign(pretty->string, "");
@@ -1254,7 +1220,7 @@ int print_discarded_elements_msg(struct pretty_component *pretty,
                init_msg = "Tracer discarded";
        }
 
-       g_string_append_printf(pretty->string,
+       bt_common_g_string_append_printf(pretty->string,
                "%s%sWARNING%s%s: %s ",
                bt_common_color_fg_yellow(),
                bt_common_color_bold(),
@@ -1262,9 +1228,9 @@ int print_discarded_elements_msg(struct pretty_component *pretty,
                bt_common_color_fg_yellow(), init_msg);
 
        if (count == UINT64_C(-1)) {
-               g_string_append_printf(pretty->string, "%ss", elem_type);
+               bt_common_g_string_append_printf(pretty->string, "%ss", elem_type);
        } else {
-               g_string_append_printf(pretty->string,
+               bt_common_g_string_append_printf(pretty->string,
                        "%" PRIu64 " %s%s", count, elem_type,
                        count == 1 ? "" : "s");
        }
@@ -1281,43 +1247,28 @@ int print_discarded_elements_msg(struct pretty_component *pretty,
                g_string_append(pretty->string, "(unknown time range)");
        }
 
-       g_string_append_printf(pretty->string, " in trace \"%s\" ", trace_name);
+       bt_common_g_string_append_printf(pretty->string, " in trace \"%s\" ", trace_name);
 
        if (trace_uuid) {
-               g_string_append_printf(pretty->string,
-                       "(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]);
+               bt_common_g_string_append_printf(pretty->string,
+                       "(UUID: " BT_UUID_FMT ") ",
+                       BT_UUID_FMT_VALUES(trace_uuid));
        } else {
                g_string_append(pretty->string, "(no UUID) ");
        }
 
-       g_string_append_printf(pretty->string,
+       bt_common_g_string_append_printf(pretty->string,
                "within stream \"%s\" (stream class ID: %" PRIu64 ", ",
                stream_name, stream_class_id);
 
        if (stream_id >= 0) {
-               g_string_append_printf(pretty->string,
+               bt_common_g_string_append_printf(pretty->string,
                        "stream ID: %" PRIu64, stream_id);
        } else {
                g_string_append(pretty->string, "no stream ID");
        }
 
-       g_string_append_printf(pretty->string, ").%s\n",
+       bt_common_g_string_append_printf(pretty->string, ").%s\n",
                bt_common_color_reset());
 
        /*
This page took 0.032718 seconds and 4 git commands to generate.