/* For bt_bool, bt_uuid, bt_trace_class, bt_stream_class, bt_field_class */
#include <babeltrace/types.h>
+/* For enum bt_trace_class_status */
+#include <babeltrace/trace-ir/trace-class-const.h>
+
#include <stdint.h>
#ifdef __cplusplus
extern void bt_trace_class_set_assigns_automatic_stream_class_id(
bt_trace_class *trace_class, bt_bool value);
-extern int bt_trace_class_set_name(bt_trace_class *trace_class,
- const char *name);
+extern enum bt_trace_class_status bt_trace_class_set_name(
+ bt_trace_class *trace_class, const char *name);
extern void bt_trace_class_set_uuid(bt_trace_class *trace_class,
bt_uuid uuid);
-extern int bt_trace_class_set_environment_entry_integer(
+extern enum bt_trace_class_status bt_trace_class_set_environment_entry_integer(
bt_trace_class *trace_class,
const char *name, int64_t value);
-extern int bt_trace_class_set_environment_entry_string(
+extern enum bt_trace_class_status bt_trace_class_set_environment_entry_string(
bt_trace_class *trace_class,
const char *name, const char *value);
-extern int bt_trace_class_set_packet_header_field_class(
+extern enum bt_trace_class_status bt_trace_class_set_packet_header_field_class(
bt_trace_class *trace_class,
bt_field_class *packet_header_field_class);
return tc->name.value;
}
-int bt_trace_class_set_name(struct bt_trace_class *tc, const char *name)
+enum bt_trace_class_status bt_trace_class_set_name(
+ struct bt_trace_class *tc, const char *name)
{
BT_ASSERT_PRE_NON_NULL(tc, "Trace class");
BT_ASSERT_PRE_NON_NULL(name, "Name");
g_string_assign(tc->name.str, name);
tc->name.value = tc->name.str->str;
BT_LIB_LOGV("Set trace class's name: %!+T", tc);
- return 0;
+ return BT_TRACE_CLASS_STATUS_OK;
}
bt_uuid bt_trace_class_get_uuid(const struct bt_trace_class *tc)
}
static
-int set_environment_entry(struct bt_trace_class *tc, const char *name,
- struct bt_value *value)
+enum bt_trace_class_status set_environment_entry(struct bt_trace_class *tc,
+ const char *name, struct bt_value *value)
{
int ret;
"%![tc-]+T, entry-name=\"%s\"", tc, name);
ret = bt_attributes_set_field_value(tc->environment, name,
value);
- bt_value_freeze(value);
if (ret) {
+ ret = BT_TRACE_CLASS_STATUS_NOMEM;
BT_LIB_LOGE("Cannot set trace class's environment entry: "
"%![tc-]+T, entry-name=\"%s\"", tc, name);
} else {
+ bt_value_freeze(value);
BT_LIB_LOGV("Set trace class's environment entry: "
"%![tc-]+T, entry-name=\"%s\"", tc, name);
}
return ret;
}
-int bt_trace_class_set_environment_entry_string(
+enum bt_trace_class_status bt_trace_class_set_environment_entry_string(
struct bt_trace_class *tc, const char *name, const char *value)
{
int ret;
return ret;
}
-int bt_trace_class_set_environment_entry_integer(struct bt_trace_class *tc,
- const char *name, int64_t value)
+enum bt_trace_class_status bt_trace_class_set_environment_entry_integer(
+ struct bt_trace_class *tc, const char *name, int64_t value)
{
int ret;
struct bt_value *value_obj;
value_obj = bt_value_integer_create_init(value);
if (!value_obj) {
BT_LOGE_STR("Cannot create an integer value object.");
- ret = -1;
+ ret = BT_TRACE_CLASS_STATUS_NOMEM;
goto end;
}
return tc->packet_header_fc;
}
-int bt_trace_class_set_packet_header_field_class(
+enum bt_trace_class_status bt_trace_class_set_packet_header_field_class(
struct bt_trace_class *tc,
struct bt_field_class *field_class)
{
field_class);
ret = bt_resolve_field_paths(field_class, &resolve_ctx);
if (ret) {
+ /*
+ * This is the only reason for which
+ * bt_resolve_field_paths() can fail: anything else
+ * would be because a precondition is not satisfied.
+ */
+ ret = BT_TRACE_CLASS_STATUS_NOMEM;
goto end;
}