Values API: split into private and public APIs
[babeltrace.git] / lib / trace-ir / trace.c
index 9b338667a3629707b5b4d3d96246c677a6ad3434..afc37d9cfbf43dbc08fd8b15f5d53ee9585dc44b 100644 (file)
@@ -46,8 +46,9 @@
 #include <babeltrace/trace-ir/resolve-field-path-internal.h>
 #include <babeltrace/compiler-internal.h>
 #include <babeltrace/values.h>
+#include <babeltrace/private-values.h>
 #include <babeltrace/values-internal.h>
-#include <babeltrace/ref.h>
+#include <babeltrace/object.h>
 #include <babeltrace/types.h>
 #include <babeltrace/endian-internal.h>
 #include <babeltrace/assert-internal.h>
@@ -119,7 +120,7 @@ void destroy_trace(struct bt_object *obj)
        }
 
        BT_LOGD_STR("Putting packet header field classe.");
-       bt_put(trace->packet_header_fc);
+       bt_object_put_ref(trace->packet_header_fc);
        g_free(trace);
 }
 
@@ -198,7 +199,7 @@ struct bt_trace *bt_trace_create(void)
        goto end;
 
 error:
-       BT_PUT(trace);
+       BT_OBJECT_PUT_REF_AND_RESET(trace);
 
 end:
        return trace;
@@ -242,18 +243,15 @@ BT_ASSERT_FUNC
 static
 bool trace_has_environment_entry(struct bt_trace *trace, const char *name)
 {
-       struct bt_value *attribute;
-
        BT_ASSERT(trace);
 
-       attribute = bt_attributes_borrow_field_value_by_name(
-               trace->environment, name);
-       return attribute != NULL;
+       return bt_attributes_borrow_field_value_by_name(
+               trace->environment, name) != NULL;
 }
 
 static
 int set_environment_entry(struct bt_trace *trace, const char *name,
-               struct bt_value *value)
+               struct bt_private_value *value)
 {
        int ret;
 
@@ -266,7 +264,7 @@ int set_environment_entry(struct bt_trace *trace, const char *name,
                "%![trace-]+t, entry-name=\"%s\"", trace, name);
        ret = bt_attributes_set_field_value(trace->environment, name,
                value);
-       bt_value_freeze(value);
+       bt_value_freeze(bt_value_borrow_from_private(value));
        if (ret) {
                BT_LIB_LOGE("Cannot set trace's environment entry: "
                        "%![trace-]+t, entry-name=\"%s\"", trace, name);
@@ -282,12 +280,12 @@ int bt_trace_set_environment_entry_string(struct bt_trace *trace,
                const char *name, const char *value)
 {
        int ret;
-       struct bt_value *value_obj;
+       struct bt_private_value *value_obj;
 
        BT_ASSERT_PRE_NON_NULL(trace, "Trace");
        BT_ASSERT_PRE_NON_NULL(name, "Name");
        BT_ASSERT_PRE_NON_NULL(value, "Value");
-       value_obj = bt_value_string_create_init(value);
+       value_obj = bt_private_value_string_create_init(value);
        if (!value_obj) {
                BT_LOGE_STR("Cannot create a string value object.");
                ret = -1;
@@ -298,7 +296,7 @@ int bt_trace_set_environment_entry_string(struct bt_trace *trace,
        ret = set_environment_entry(trace, name, value_obj);
 
 end:
-       bt_put(value_obj);
+       bt_object_put_ref(value_obj);
        return ret;
 }
 
@@ -306,11 +304,11 @@ int bt_trace_set_environment_entry_integer(
                struct bt_trace *trace, const char *name, int64_t value)
 {
        int ret;
-       struct bt_value *value_obj;
+       struct bt_private_value *value_obj;
 
        BT_ASSERT_PRE_NON_NULL(trace, "Trace");
        BT_ASSERT_PRE_NON_NULL(name, "Name");
-       value_obj = bt_value_integer_create_init(value);
+       value_obj = bt_private_value_integer_create_init(value);
        if (!value_obj) {
                BT_LOGE_STR("Cannot create an integer value object.");
                ret = -1;
@@ -321,7 +319,7 @@ int bt_trace_set_environment_entry_integer(
        ret = set_environment_entry(trace, name, value_obj);
 
 end:
-       bt_put(value_obj);
+       bt_object_put_ref(value_obj);
        return ret;
 }
 
@@ -344,7 +342,8 @@ void bt_trace_borrow_environment_entry_by_index(
        BT_ASSERT_PRE_NON_NULL(value, "Value");
        BT_ASSERT_PRE_VALID_INDEX(index,
                bt_attributes_get_count(trace->environment));
-       *value = bt_attributes_borrow_field_value(trace->environment, index);
+       *value = bt_value_borrow_from_private(
+               bt_attributes_borrow_field_value(trace->environment, index));
        BT_ASSERT(*value);
        *name = bt_attributes_get_field_name(trace->environment, index);
        BT_ASSERT(*name);
@@ -355,8 +354,9 @@ struct bt_value *bt_trace_borrow_environment_entry_value_by_name(
 {
        BT_ASSERT_PRE_NON_NULL(trace, "Trace");
        BT_ASSERT_PRE_NON_NULL(name, "Name");
-       return bt_attributes_borrow_field_value_by_name(trace->environment,
-               name);
+       return bt_value_borrow_from_private(
+               bt_attributes_borrow_field_value_by_name(trace->environment,
+                       name));
 }
 
 uint64_t bt_trace_get_stream_count(struct bt_trace *trace)
@@ -454,8 +454,8 @@ int bt_trace_set_packet_header_field_class(struct bt_trace *trace,
        BT_ASSERT_PRE_NON_NULL(trace, "Trace");
        BT_ASSERT_PRE_NON_NULL(field_class, "Field class");
        BT_ASSERT_PRE_TRACE_HOT(trace);
-       BT_ASSERT_PRE(bt_field_class_get_id(field_class) ==
-               BT_FIELD_CLASS_ID_STRUCTURE,
+       BT_ASSERT_PRE(bt_field_class_get_type(field_class) ==
+               BT_FIELD_CLASS_TYPE_STRUCTURE,
                "Packet header field classe is not a structure field classe: %!+F",
                field_class);
        ret = bt_resolve_field_paths(field_class, &resolve_ctx);
@@ -464,8 +464,8 @@ int bt_trace_set_packet_header_field_class(struct bt_trace *trace,
        }
 
        bt_field_class_make_part_of_trace(field_class);
-       bt_put(trace->packet_header_fc);
-       trace->packet_header_fc = bt_get(field_class);
+       bt_object_put_ref(trace->packet_header_fc);
+       trace->packet_header_fc = bt_object_get_ref(field_class);
        bt_field_class_freeze(field_class);
        BT_LIB_LOGV("Set trace's packet header field classe: %!+t", trace);
 
This page took 0.058336 seconds and 4 git commands to generate.