bt_clock_class_create(): accept mandatory trace class
[babeltrace.git] / lib / trace-ir / field-class.c
index ed7b2121b9513212aeb7dc97a97f14d4a9575bd4..eb949bbcb945f03ea4b25e3d20a6766bbed00e22 100644 (file)
 #include <babeltrace/trace-ir/field-const.h>
 #include <babeltrace/trace-ir/field.h>
 #include <babeltrace/trace-ir/utils-internal.h>
-#include <babeltrace/object.h>
 #include <babeltrace/trace-ir/clock-class.h>
 #include <babeltrace/trace-ir/clock-class-internal.h>
 #include <babeltrace/object-internal.h>
-#include <babeltrace/object.h>
 #include <babeltrace/compiler-internal.h>
 #include <babeltrace/endian-internal.h>
 #include <babeltrace/assert-internal.h>
@@ -382,7 +380,8 @@ void bt_field_class_signed_enumeration_mapping_ranges_get_range_by_index(
 
 
 
-int bt_field_class_unsigned_enumeration_get_mapping_labels_by_value(
+enum bt_field_class_status
+bt_field_class_unsigned_enumeration_get_mapping_labels_by_value(
                const struct bt_field_class *fc, uint64_t value,
                bt_field_class_enumeration_mapping_label_array *label_array,
                uint64_t *count)
@@ -418,10 +417,11 @@ int bt_field_class_unsigned_enumeration_get_mapping_labels_by_value(
 
        *label_array = (void *) enum_fc->label_buf->pdata;
        *count = (uint64_t) enum_fc->label_buf->len;
-       return 0;
+       return BT_FIELD_CLASS_STATUS_OK;
 }
 
-int bt_field_class_signed_enumeration_get_mapping_labels_by_value(
+enum bt_field_class_status
+bt_field_class_signed_enumeration_get_mapping_labels_by_value(
                const struct bt_field_class *fc, int64_t value,
                bt_field_class_enumeration_mapping_label_array *label_array,
                uint64_t *count)
@@ -457,14 +457,15 @@ int bt_field_class_signed_enumeration_get_mapping_labels_by_value(
 
        *label_array = (void *) enum_fc->label_buf->pdata;
        *count = (uint64_t) enum_fc->label_buf->len;
-       return 0;
+       return BT_FIELD_CLASS_STATUS_OK;
 }
 
 static inline
-int add_mapping_to_enumeration_field_class(struct bt_field_class *fc,
+enum bt_field_class_status add_mapping_to_enumeration_field_class(
+               struct bt_field_class *fc,
                const char *label, uint64_t lower, uint64_t upper)
 {
-       int ret = 0;
+       int ret = BT_FIELD_CLASS_STATUS_OK;
        uint64_t i;
        struct bt_field_class_enumeration *enum_fc = (void *) fc;
        struct bt_field_class_enumeration_mapping *mapping = NULL;
@@ -495,7 +496,7 @@ int add_mapping_to_enumeration_field_class(struct bt_field_class *fc,
                        finalize_enumeration_field_class_mapping(mapping);
                        g_array_set_size(enum_fc->mappings,
                                enum_fc->mappings->len - 1);
-                       ret = -1;
+                       ret = BT_FIELD_CLASS_STATUS_NOMEM;
                        goto end;
                }
 
@@ -504,7 +505,7 @@ int add_mapping_to_enumeration_field_class(struct bt_field_class *fc,
                        finalize_enumeration_field_class_mapping(mapping);
                        g_array_set_size(enum_fc->mappings,
                                enum_fc->mappings->len - 1);
-                       ret = -1;
+                       ret = BT_FIELD_CLASS_STATUS_NOMEM;
                        goto end;
                }
        }
@@ -524,7 +525,7 @@ end:
        return ret;
 }
 
-int bt_field_class_unsigned_enumeration_map_range(
+enum bt_field_class_status bt_field_class_unsigned_enumeration_map_range(
                struct bt_field_class *fc, const char *label,
                uint64_t range_lower, uint64_t range_upper)
 {
@@ -549,7 +550,7 @@ int bt_field_class_unsigned_enumeration_map_range(
                range_upper);
 }
 
-int bt_field_class_signed_enumeration_map_range(
+enum bt_field_class_status bt_field_class_signed_enumeration_map_range(
                struct bt_field_class *fc, const char *label,
                int64_t range_lower, int64_t range_upper)
 {
@@ -733,11 +734,11 @@ end:
 }
 
 static
-int append_named_field_class_to_container_field_class(
+enum bt_field_class_status append_named_field_class_to_container_field_class(
                struct bt_field_class_named_field_class_container *container_fc,
                const char *name, struct bt_field_class *fc)
 {
-       int ret = 0;
+       int ret = BT_FIELD_CLASS_STATUS_OK;
        struct bt_named_field_class *named_fc;
        GString *name_str;
 
@@ -752,7 +753,7 @@ int append_named_field_class_to_container_field_class(
        name_str = g_string_new(name);
        if (!name_str) {
                BT_LOGE_STR("Failed to allocate a GString.");
-               ret = -1;
+               ret = BT_FIELD_CLASS_STATUS_NOMEM;
                goto end;
        }
 
@@ -771,8 +772,9 @@ end:
        return ret;
 }
 
-int bt_field_class_structure_append_member(struct bt_field_class *fc,
-               const char *name, struct bt_field_class *member_fc)
+enum bt_field_class_status bt_field_class_structure_append_member(
+               struct bt_field_class *fc, const char *name,
+               struct bt_field_class *member_fc)
 {
 
        BT_ASSERT_PRE_NON_NULL(fc, "Field class");
@@ -897,7 +899,7 @@ end:
        return (void *) var_fc;
 }
 
-int bt_field_class_variant_set_selector_field_class(
+enum bt_field_class_status bt_field_class_variant_set_selector_field_class(
                struct bt_field_class *fc,
                struct bt_field_class *selector_fc)
 {
@@ -911,10 +913,10 @@ int bt_field_class_variant_set_selector_field_class(
        var_fc->selector_fc = selector_fc;
        bt_object_get_no_null_check(selector_fc);
        bt_field_class_freeze(selector_fc);
-       return 0;
+       return BT_FIELD_CLASS_STATUS_OK;
 }
 
-int bt_field_class_variant_append_option(
+enum bt_field_class_status bt_field_class_variant_append_option(
                struct bt_field_class *fc,
                const char *name, struct bt_field_class *option_fc)
 {
@@ -1084,7 +1086,7 @@ end:
        return (void *) array_fc;
 }
 
-int bt_field_class_dynamic_array_set_length_field_class(
+enum bt_field_class_status bt_field_class_dynamic_array_set_length_field_class(
                struct bt_field_class *fc,
                struct bt_field_class *length_fc)
 {
@@ -1099,7 +1101,7 @@ int bt_field_class_dynamic_array_set_length_field_class(
        array_fc->length_fc = length_fc;
        bt_object_get_no_null_check(length_fc);
        bt_field_class_freeze(length_fc);
-       return 0;
+       return BT_FIELD_CLASS_STATUS_OK;
 }
 
 const struct bt_field_path *
@@ -1196,3 +1198,13 @@ void _bt_field_class_make_part_of_trace_class(const struct bt_field_class *c_fc)
                break;
        }
 }
+
+void bt_field_class_get_ref(const struct bt_field_class *field_class)
+{
+       bt_object_get_ref(field_class);
+}
+
+void bt_field_class_put_ref(const struct bt_field_class *field_class)
+{
+       bt_object_put_ref(field_class);
+}
This page took 0.026403 seconds and 4 git commands to generate.