lib: have dedicated "dynamic array FC with/without length field" types
[babeltrace.git] / src / plugins / text / pretty / print.c
index ea0b165c0260e8c9438e1ab0a81188bffb6f65d5..78e8fdbbf49e835dba5be21ab96f8fde849c20df 100644 (file)
@@ -998,14 +998,35 @@ int print_field(struct pretty_component *pretty,
                }
                return 0;
        }
+       case BT_FIELD_CLASS_TYPE_BIT_ARRAY:
+       {
+               uint64_t v = bt_field_bit_array_get_value_as_integer(field);
+
+               if (pretty->use_colors) {
+                       bt_common_g_string_append(pretty->string,
+                               COLOR_NUMBER_VALUE);
+               }
+               bt_common_g_string_append_printf(pretty->string, "0x%" PRIX64,
+                       v);
+               if (pretty->use_colors) {
+                       bt_common_g_string_append(pretty->string, COLOR_RST);
+               }
+               return 0;
+       }
        case BT_FIELD_CLASS_TYPE_UNSIGNED_INTEGER:
        case BT_FIELD_CLASS_TYPE_SIGNED_INTEGER:
                return print_integer(pretty, field);
-       case BT_FIELD_CLASS_TYPE_REAL:
+       case BT_FIELD_CLASS_TYPE_SINGLE_PRECISION_REAL:
+       case BT_FIELD_CLASS_TYPE_DOUBLE_PRECISION_REAL:
        {
                double v;
 
-               v = bt_field_real_get_value(field);
+               if (class_id == BT_FIELD_CLASS_TYPE_SINGLE_PRECISION_REAL) {
+                       v = (float) bt_field_real_single_precision_get_value(field);
+               } else {
+                       v = bt_field_real_double_precision_get_value(field);
+               }
+
                if (pretty->use_colors) {
                        bt_common_g_string_append(pretty->string, COLOR_NUMBER_VALUE);
                }
@@ -1038,15 +1059,19 @@ int print_field(struct pretty_component *pretty,
        }
        case BT_FIELD_CLASS_TYPE_STRUCTURE:
                return print_struct(pretty, field, print_names);
-       case BT_FIELD_CLASS_TYPE_OPTION:
+       case BT_FIELD_CLASS_TYPE_OPTION_WITHOUT_SELECTOR:
+       case BT_FIELD_CLASS_TYPE_OPTION_WITH_BOOL_SELECTOR:
+       case BT_FIELD_CLASS_TYPE_OPTION_WITH_UNSIGNED_INTEGER_SELECTOR:
+       case BT_FIELD_CLASS_TYPE_OPTION_WITH_SIGNED_INTEGER_SELECTOR:
                return print_option(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:
+       case BT_FIELD_CLASS_TYPE_VARIANT_WITH_UNSIGNED_INTEGER_SELECTOR:
+       case BT_FIELD_CLASS_TYPE_VARIANT_WITH_SIGNED_INTEGER_SELECTOR:
                return print_variant(pretty, field, print_names);
        case BT_FIELD_CLASS_TYPE_STATIC_ARRAY:
                return print_array(pretty, field, print_names);
-       case BT_FIELD_CLASS_TYPE_DYNAMIC_ARRAY:
+       case BT_FIELD_CLASS_TYPE_DYNAMIC_ARRAY_WITHOUT_LENGTH_FIELD:
+       case BT_FIELD_CLASS_TYPE_DYNAMIC_ARRAY_WITH_LENGTH_FIELD:
                return print_sequence(pretty, field, print_names);
        default:
                // TODO: log instead
This page took 0.024714 seconds and 4 git commands to generate.