lib: remove CTF concepts of packet and event headers
[babeltrace.git] / lib / trace-ir / resolve-field-path.c
index b86109952d06bac3494f07b381d5cf0f94909d36..597eb74325fed5a9e39a795b6e9e66c71d9f26b3 100644 (file)
@@ -25,9 +25,9 @@
 
 #include <babeltrace/assert-pre-internal.h>
 #include <babeltrace/assert-internal.h>
-#include <babeltrace/trace-ir/field-classes-internal.h>
+#include <babeltrace/trace-ir/field-class-internal.h>
 #include <babeltrace/trace-ir/field-path-internal.h>
-#include <babeltrace/trace-ir/field-path.h>
+#include <babeltrace/trace-ir/field-path-const.h>
 #include <babeltrace/trace-ir/resolve-field-path-internal.h>
 #include <limits.h>
 #include <stdint.h>
@@ -45,9 +45,9 @@ bool find_field_class_recursive(struct bt_field_class *fc,
                goto end;
        }
 
-       switch (fc->id) {
-       case BT_FIELD_CLASS_ID_STRUCTURE:
-       case BT_FIELD_CLASS_ID_VARIANT:
+       switch (fc->type) {
+       case BT_FIELD_CLASS_TYPE_STRUCTURE:
+       case BT_FIELD_CLASS_TYPE_VARIANT:
        {
                struct bt_field_class_named_field_class_container *container_fc =
                        (void *) fc;
@@ -71,8 +71,8 @@ bool find_field_class_recursive(struct bt_field_class *fc,
 
                break;
        }
-       case BT_FIELD_CLASS_ID_STATIC_ARRAY:
-       case BT_FIELD_CLASS_ID_DYNAMIC_ARRAY:
+       case BT_FIELD_CLASS_TYPE_STATIC_ARRAY:
+       case BT_FIELD_CLASS_TYPE_DYNAMIC_ARRAY:
        {
                struct bt_field_class_array *array_fc = (void *) fc;
 
@@ -109,7 +109,7 @@ int find_field_class(struct bt_field_class *root_fc,
        field_path->root = root_scope;
        if (!find_field_class_recursive(root_fc, tgt_fc, field_path)) {
                /* Not found here */
-               BT_PUT(field_path);
+               BT_OBJECT_PUT_REF_AND_RESET(field_path);
        }
 
 end:
@@ -124,24 +124,12 @@ struct bt_field_path *find_field_class_in_ctx(struct bt_field_class *fc,
        struct bt_field_path *field_path = NULL;
        int ret;
 
-       ret = find_field_class(ctx->packet_header, BT_SCOPE_PACKET_HEADER,
-               fc, &field_path);
-       if (ret || field_path) {
-               goto end;
-       }
-
        ret = find_field_class(ctx->packet_context, BT_SCOPE_PACKET_CONTEXT,
                fc, &field_path);
        if (ret || field_path) {
                goto end;
        }
 
-       ret = find_field_class(ctx->event_header, BT_SCOPE_EVENT_HEADER,
-               fc, &field_path);
-       if (ret || field_path) {
-               goto end;
-       }
-
        ret = find_field_class(ctx->event_common_context,
                BT_SCOPE_EVENT_COMMON_CONTEXT, fc, &field_path);
        if (ret || field_path) {
@@ -209,12 +197,8 @@ struct bt_field_class *borrow_root_field_class(
                struct bt_resolve_field_path_context *ctx, enum bt_scope scope)
 {
        switch (scope) {
-       case BT_SCOPE_PACKET_HEADER:
-               return ctx->packet_header;
        case BT_SCOPE_PACKET_CONTEXT:
                return ctx->packet_context;
-       case BT_SCOPE_EVENT_HEADER:
-               return ctx->event_header;
        case BT_SCOPE_EVENT_COMMON_CONTEXT:
                return ctx->event_common_context;
        case BT_SCOPE_EVENT_SPECIFIC_CONTEXT:
@@ -235,9 +219,9 @@ struct bt_field_class *borrow_child_field_class(struct bt_field_class *parent_fc
 {
        struct bt_field_class *child_fc = NULL;
 
-       switch (parent_fc->id) {
-       case BT_FIELD_CLASS_ID_STRUCTURE:
-       case BT_FIELD_CLASS_ID_VARIANT:
+       switch (parent_fc->type) {
+       case BT_FIELD_CLASS_TYPE_STRUCTURE:
+       case BT_FIELD_CLASS_TYPE_VARIANT:
        {
                struct bt_named_field_class *named_fc =
                        BT_FIELD_CLASS_NAMED_FC_AT_INDEX(parent_fc, index);
@@ -246,8 +230,8 @@ struct bt_field_class *borrow_child_field_class(struct bt_field_class *parent_fc
                *advance = true;
                break;
        }
-       case BT_FIELD_CLASS_ID_STATIC_ARRAY:
-       case BT_FIELD_CLASS_ID_DYNAMIC_ARRAY:
+       case BT_FIELD_CLASS_TYPE_STATIC_ARRAY:
+       case BT_FIELD_CLASS_TYPE_DYNAMIC_ARRAY:
        {
                struct bt_field_class_array *array_fc = (void *) parent_fc;
 
@@ -284,9 +268,9 @@ bool target_field_path_in_different_scope_has_struct_fc_only(
                        tgt_field_path, i);
                bool advance;
 
-               if (fc->id == BT_FIELD_CLASS_ID_STATIC_ARRAY ||
-                               fc->id == BT_FIELD_CLASS_ID_DYNAMIC_ARRAY ||
-                               fc->id == BT_FIELD_CLASS_ID_VARIANT) {
+               if (fc->type == BT_FIELD_CLASS_TYPE_STATIC_ARRAY ||
+                               fc->type == BT_FIELD_CLASS_TYPE_DYNAMIC_ARRAY ||
+                               fc->type == BT_FIELD_CLASS_TYPE_VARIANT) {
                        is_valid = false;
                        goto end;
                }
@@ -335,13 +319,13 @@ bool lca_is_structure_field_class(struct bt_field_path *src_field_path,
                        if (!prev_fc) {
                                /*
                                 * This is correct: the LCA is the root
-                                * scope field classe, which must be a
-                                * structure field classe.
+                                * scope field class, which must be a
+                                * structure field class.
                                 */
                                break;
                        }
 
-                       if (prev_fc->id != BT_FIELD_CLASS_ID_STRUCTURE) {
+                       if (prev_fc->type != BT_FIELD_CLASS_TYPE_STRUCTURE) {
                                is_valid = false;
                        }
 
@@ -420,9 +404,9 @@ bool lca_to_target_has_struct_fc_only(struct bt_field_path *src_field_path,
                uint64_t tgt_index = bt_field_path_get_index_by_index_inline(
                        tgt_field_path, tgt_i);
 
-               if (tgt_fc->id == BT_FIELD_CLASS_ID_STATIC_ARRAY ||
-                               tgt_fc->id == BT_FIELD_CLASS_ID_DYNAMIC_ARRAY ||
-                               tgt_fc->id == BT_FIELD_CLASS_ID_VARIANT) {
+               if (tgt_fc->type == BT_FIELD_CLASS_TYPE_STATIC_ARRAY ||
+                               tgt_fc->type == BT_FIELD_CLASS_TYPE_DYNAMIC_ARRAY ||
+                               tgt_fc->type == BT_FIELD_CLASS_TYPE_VARIANT) {
                        is_valid = false;
                        goto end;
                }
@@ -451,14 +435,14 @@ bool field_path_is_valid(struct bt_field_class *src_fc,
                tgt_fc, ctx);
 
        if (!src_field_path) {
-               BT_ASSERT_PRE_MSG("Cannot find requesting field classe in "
+               BT_ASSERT_PRE_MSG("Cannot find requesting field class in "
                        "resolving context: %!+F", src_fc);
                is_valid = false;
                goto end;
        }
 
        if (!tgt_field_path) {
-               BT_ASSERT_PRE_MSG("Cannot find target field classe in "
+               BT_ASSERT_PRE_MSG("Cannot find target field class in "
                        "resolving context: %!+F", tgt_fc);
                is_valid = false;
                goto end;
@@ -466,8 +450,8 @@ bool field_path_is_valid(struct bt_field_class *src_fc,
 
        /* Target must be before source */
        if (!target_is_before_source(src_field_path, tgt_field_path)) {
-               BT_ASSERT_PRE_MSG("Target field classe is located after "
-                       "requesting field classe: %![req-fc-]+F, %![tgt-fc-]+F",
+               BT_ASSERT_PRE_MSG("Target field class is located after "
+                       "requesting field class: %![req-fc-]+F, %![tgt-fc-]+F",
                        src_fc, tgt_fc);
                is_valid = false;
                goto end;
@@ -479,19 +463,19 @@ bool field_path_is_valid(struct bt_field_class *src_fc,
         */
        if (!target_field_path_in_different_scope_has_struct_fc_only(
                        src_field_path, tgt_field_path, ctx)) {
-               BT_ASSERT_PRE_MSG("Target field classe is located in a "
-                       "different scope than requesting field classe, "
-                       "but within an array or a variant field classe: "
+               BT_ASSERT_PRE_MSG("Target field class is located in a "
+                       "different scope than requesting field class, "
+                       "but within an array or a variant field class: "
                        "%![req-fc-]+F, %![tgt-fc-]+F",
                        src_fc, tgt_fc);
                is_valid = false;
                goto end;
        }
 
-       /* Same scope: LCA must be a structure field classe */
+       /* Same scope: LCA must be a structure field class */
        if (!lca_is_structure_field_class(src_field_path, tgt_field_path, ctx)) {
                BT_ASSERT_PRE_MSG("Lowest common ancestor of target and "
-                       "requesting field classes is not a structure field classe: "
+                       "requesting field classes is not a structure field class: "
                        "%![req-fc-]+F, %![tgt-fc-]+F",
                        src_fc, tgt_fc);
                is_valid = false;
@@ -502,16 +486,16 @@ bool field_path_is_valid(struct bt_field_class *src_fc,
        if (!lca_to_target_has_struct_fc_only(src_field_path, tgt_field_path,
                        ctx)) {
                BT_ASSERT_PRE_MSG("Path from lowest common ancestor of target "
-                       "and requesting field classes to target field classe "
-                       "contains an array or a variant field classe: "
+                       "and requesting field classes to target field class "
+                       "contains an array or a variant field class: "
                        "%![req-fc-]+F, %![tgt-fc-]+F", src_fc, tgt_fc);
                is_valid = false;
                goto end;
        }
 
 end:
-       bt_put(src_field_path);
-       bt_put(tgt_field_path);
+       bt_object_put_ref(src_field_path);
+       bt_object_put_ref(tgt_field_path);
        return is_valid;
 }
 
@@ -521,7 +505,7 @@ struct bt_field_path *resolve_field_path(struct bt_field_class *src_fc,
                struct bt_resolve_field_path_context *ctx)
 {
        BT_ASSERT_PRE(field_path_is_valid(src_fc, tgt_fc, ctx),
-               "Invalid target field classe: %![req-fc-]+F, %![tgt-fc-]+F",
+               "Invalid target field class: %![req-fc-]+F, %![tgt-fc-]+F",
                src_fc, tgt_fc);
        return find_field_class_in_ctx(tgt_fc, ctx);
 }
@@ -535,8 +519,8 @@ int bt_resolve_field_paths(struct bt_field_class *fc,
        BT_ASSERT(fc);
 
        /* Resolving part for dynamic array and variant field classes */
-       switch (fc->id) {
-       case BT_FIELD_CLASS_ID_DYNAMIC_ARRAY:
+       switch (fc->type) {
+       case BT_FIELD_CLASS_TYPE_DYNAMIC_ARRAY:
        {
                struct bt_field_class_dynamic_array *dyn_array_fc = (void *) fc;
 
@@ -552,7 +536,7 @@ int bt_resolve_field_paths(struct bt_field_class *fc,
 
                break;
        }
-       case BT_FIELD_CLASS_ID_VARIANT:
+       case BT_FIELD_CLASS_TYPE_VARIANT:
        {
                struct bt_field_class_variant *var_fc = (void *) fc;
 
@@ -572,9 +556,9 @@ int bt_resolve_field_paths(struct bt_field_class *fc,
        }
 
        /* Recursive part */
-       switch (fc->id) {
-       case BT_FIELD_CLASS_ID_STRUCTURE:
-       case BT_FIELD_CLASS_ID_VARIANT:
+       switch (fc->type) {
+       case BT_FIELD_CLASS_TYPE_STRUCTURE:
+       case BT_FIELD_CLASS_TYPE_VARIANT:
        {
                struct bt_field_class_named_field_class_container *container_fc =
                        (void *) fc;
@@ -593,8 +577,8 @@ int bt_resolve_field_paths(struct bt_field_class *fc,
 
                break;
        }
-       case BT_FIELD_CLASS_ID_STATIC_ARRAY:
-       case BT_FIELD_CLASS_ID_DYNAMIC_ARRAY:
+       case BT_FIELD_CLASS_TYPE_STATIC_ARRAY:
+       case BT_FIELD_CLASS_TYPE_DYNAMIC_ARRAY:
        {
                struct bt_field_class_array *array_fc = (void *) fc;
 
This page took 0.030364 seconds and 4 git commands to generate.