lib: strictly type function return status enumerations
[babeltrace.git] / include / babeltrace2 / trace-ir / field.h
index d336faf313203d1694820d0494efc3984851e77b..8dadd6873f22bc4b219358283ea1a4af30c0d6f2 100644 (file)
 /* For bt_field, bt_field_class */
 #include <babeltrace2/types.h>
 
-/* For bt_field_status */
-#include <babeltrace2/trace-ir/field-const.h>
+/* For __BT_FUNC_STATUS_* */
+#define __BT_FUNC_STATUS_ENABLE
+#include <babeltrace2/func-status.h>
+#undef __BT_FUNC_STATUS_ENABLE
 
 #ifdef __cplusplus
 extern "C" {
@@ -47,16 +49,26 @@ extern void bt_field_unsigned_integer_set_value(bt_field *field,
 
 extern void bt_field_real_set_value(bt_field *field, double value);
 
-extern bt_field_status bt_field_string_set_value(bt_field *field,
-               const char *value);
+typedef enum bt_field_string_set_value_status {
+       BT_FIELD_STRING_SET_VALUE_STATUS_MEMORY_ERROR   = __BT_FUNC_STATUS_MEMORY_ERROR,
+       BT_FIELD_STRING_SET_VALUE_STATUS_OK             = __BT_FUNC_STATUS_OK,
+} bt_field_string_set_value_status;
 
-extern bt_field_status bt_field_string_append(bt_field *field,
-               const char *value);
+extern bt_field_string_set_value_status bt_field_string_set_value(
+               bt_field *field, const char *value);
 
-extern bt_field_status bt_field_string_append_with_length(bt_field *field,
-               const char *value, uint64_t length);
+typedef enum bt_field_string_append_status {
+       BT_FIELD_STRING_APPEND_STATUS_MEMORY_ERROR      = __BT_FUNC_STATUS_MEMORY_ERROR,
+       BT_FIELD_STRING_APPEND_STATUS_OK                = __BT_FUNC_STATUS_OK,
+} bt_field_string_append_status;
 
-extern bt_field_status bt_field_string_clear(bt_field *field);
+extern bt_field_string_append_status bt_field_string_append(
+               bt_field *field, const char *value);
+
+extern bt_field_string_append_status bt_field_string_append_with_length(
+               bt_field *field, const char *value, uint64_t length);
+
+extern void bt_field_string_clear(bt_field *field);
 
 extern bt_field *bt_field_structure_borrow_member_field_by_index(
                bt_field *field, uint64_t index);
@@ -67,10 +79,21 @@ extern bt_field *bt_field_structure_borrow_member_field_by_name(
 extern bt_field *bt_field_array_borrow_element_field_by_index(
                bt_field *field, uint64_t index);
 
-extern bt_field_status bt_field_dynamic_array_set_length(bt_field *field,
-               uint64_t length);
+typedef enum bt_field_dynamic_array_set_length_status {
+       BT_FIELD_DYNAMIC_ARRAY_SET_LENGTH_STATUS_MEMORY_ERROR   = __BT_FUNC_STATUS_MEMORY_ERROR,
+       BT_FIELD_DYNAMIC_ARRAY_SET_LENGTH_STATUS_OK             = __BT_FUNC_STATUS_OK,
+} bt_field_dynamic_array_set_length_status;
+
+extern bt_field_dynamic_array_set_length_status
+bt_field_dynamic_array_set_length(
+               bt_field *field, uint64_t length);
 
-extern bt_field_status bt_field_variant_select_option_field(
+typedef enum bt_field_variant_select_option_field_status {
+       BT_FIELD_VARIANT_SELECT_OPTION_FIELD_STATUS_OK          = __BT_FUNC_STATUS_OK,
+} bt_field_variant_select_option_field_status;
+
+extern bt_field_variant_select_option_field_status
+bt_field_variant_select_option_field(
                bt_field *field, uint64_t index);
 
 extern bt_field *bt_field_variant_borrow_selected_option_field(
@@ -80,4 +103,6 @@ extern bt_field *bt_field_variant_borrow_selected_option_field(
 }
 #endif
 
+#include <babeltrace2/undef-func-status.h>
+
 #endif /* BABELTRACE_TRACE_IR_FIELDS_H */
This page took 0.024123 seconds and 4 git commands to generate.