/* For bt_field, bt_field_class */
#include <babeltrace/types.h>
+/* For enum bt_field_status */
+#include <babeltrace/trace-ir/field-const.h>
+
#ifdef __cplusplus
extern "C" {
#endif
extern void bt_field_real_set_value(bt_field *field, double value);
-extern int bt_field_string_set_value(bt_field *field, const char *value);
+extern enum bt_field_status bt_field_string_set_value(bt_field *field,
+ const char *value);
-extern int bt_field_string_append(bt_field *field, const char *value);
+extern enum bt_field_status bt_field_string_append(bt_field *field,
+ const char *value);
-extern int bt_field_string_append_with_length(bt_field *field,
+extern enum bt_field_status bt_field_string_append_with_length(bt_field *field,
const char *value, uint64_t length);
-extern int bt_field_string_clear(bt_field *field);
+extern enum bt_field_status bt_field_string_clear(bt_field *field);
extern bt_field *bt_field_structure_borrow_member_field_by_index(
bt_field *field, uint64_t index);
extern bt_field *bt_field_array_borrow_element_field_by_index(
bt_field *field, uint64_t index);
-extern int bt_field_dynamic_array_set_length(bt_field *field,
+extern enum bt_field_status bt_field_dynamic_array_set_length(bt_field *field,
uint64_t length);
-extern int bt_field_variant_select_option_field(bt_field *field,
- uint64_t index);
+extern enum bt_field_status bt_field_variant_select_option_field(
+ bt_field *field, uint64_t index);
extern bt_field *bt_field_variant_borrow_selected_option_field(
bt_field *field);
bt_field_set_single(field, true);
}
-int bt_field_unsigned_enumeration_get_mapping_labels(
+enum bt_field_status bt_field_unsigned_enumeration_get_mapping_labels(
const struct bt_field *field,
bt_field_class_enumeration_mapping_label_array *label_array,
uint64_t *count)
BT_ASSERT_PRE_FIELD_IS_SET(field, "Field");
BT_ASSERT_PRE_FIELD_HAS_CLASS_TYPE(field,
BT_FIELD_CLASS_TYPE_UNSIGNED_ENUMERATION, "Field");
- return bt_field_class_unsigned_enumeration_get_mapping_labels_by_value(
- field->class, int_field->value.u, label_array, count);
+ return (int)
+ bt_field_class_unsigned_enumeration_get_mapping_labels_by_value(
+ field->class, int_field->value.u, label_array, count);
}
-int bt_field_signed_enumeration_get_mapping_labels(
+enum bt_field_status bt_field_signed_enumeration_get_mapping_labels(
const struct bt_field *field,
bt_field_class_enumeration_mapping_label_array *label_array,
uint64_t *count)
BT_ASSERT_PRE_FIELD_IS_SET(field, "Field");
BT_ASSERT_PRE_FIELD_HAS_CLASS_TYPE(field,
BT_FIELD_CLASS_TYPE_SIGNED_ENUMERATION, "Field");
- return bt_field_class_signed_enumeration_get_mapping_labels_by_value(
- field->class, int_field->value.i, label_array, count);
+ return (int)
+ bt_field_class_signed_enumeration_get_mapping_labels_by_value(
+ field->class, int_field->value.i, label_array, count);
}
const char *bt_field_string_get_value(const struct bt_field *field)
return string_field->length;
}
-int bt_field_string_set_value(struct bt_field *field, const char *value)
+static inline
+void clear_string_field(struct bt_field *field)
+{
+ struct bt_field_string *string_field = (void *) field;
+
+ BT_ASSERT(field);
+ string_field->length = 0;
+ bt_field_set_single(field, true);
+}
+
+enum bt_field_status bt_field_string_set_value(struct bt_field *field,
+ const char *value)
{
BT_ASSERT_PRE_NON_NULL(field, "Field");
BT_ASSERT_PRE_NON_NULL(value, "Value");
BT_ASSERT_PRE_FIELD_HOT(field, "Field");
BT_ASSERT_PRE_FIELD_HAS_CLASS_TYPE(field, BT_FIELD_CLASS_TYPE_STRING,
"Field");
- bt_field_string_clear(field);
+ clear_string_field(field);
return bt_field_string_append_with_length(field, value,
(uint64_t) strlen(value));
}
-int bt_field_string_append(struct bt_field *field, const char *value)
+enum bt_field_status bt_field_string_append(struct bt_field *field, const char *value)
{
return bt_field_string_append_with_length(field,
value, (uint64_t) strlen(value));
}
-int bt_field_string_append_with_length(struct bt_field *field,
+enum bt_field_status bt_field_string_append_with_length(struct bt_field *field,
const char *value, uint64_t length)
{
struct bt_field_string *string_field = (void *) field;
((char *) string_field->buf->data)[new_length] = '\0';
string_field->length = new_length;
bt_field_set_single(field, true);
- return 0;
+ return BT_FIELD_STATUS_OK;
}
-int bt_field_string_clear(struct bt_field *field)
+enum bt_field_status bt_field_string_clear(struct bt_field *field)
{
- struct bt_field_string *string_field = (void *) field;
-
BT_ASSERT_PRE_NON_NULL(field, "Field");
BT_ASSERT_PRE_FIELD_HOT(field, "Field");
BT_ASSERT_PRE_FIELD_HAS_CLASS_TYPE(field,
BT_FIELD_CLASS_TYPE_STRING, "Field");
- string_field->length = 0;
- bt_field_set_single(field, true);
- return 0;
+ clear_string_field(field);
+ return BT_FIELD_STATUS_OK;
}
uint64_t bt_field_array_get_length(const struct bt_field *field)
return array_field->length;
}
-int bt_field_dynamic_array_set_length(struct bt_field *field, uint64_t length)
+enum bt_field_status bt_field_dynamic_array_set_length(struct bt_field *field,
+ uint64_t length)
{
- int ret = 0;
+ int ret = BT_FIELD_STATUS_OK;
struct bt_field_array *array_field = (void *) field;
BT_ASSERT_PRE_NON_NULL(field, "Field");
"dynamic array field: "
"index=%" PRIu64 ", "
"%![array-field-]+f", i, field);
- ret = -1;
+ ret = BT_FIELD_STATUS_NOMEM;
goto end;
}
return borrow_variant_field_selected_option_field((void *) field);
}
-int bt_field_variant_select_option_field(
+enum bt_field_status bt_field_variant_select_option_field(
struct bt_field *field, uint64_t index)
{
struct bt_field_variant *var_field = (void *) field;
BT_ASSERT_PRE_VALID_INDEX(index, var_field->fields->len);
var_field->selected_field = var_field->fields->pdata[index];
var_field->selected_index = index;
- return 0;
+ return BT_FIELD_STATUS_OK;
}
uint64_t bt_field_variant_get_selected_option_field_index(