lib: make bt_value_map_foreach_entry_{const_}func() return a status code
[babeltrace.git] / include / babeltrace2 / value.h
index 87190173b39e7dc16ab996f44f60cff1ded70e09..42e3cf96dd22496c406b7aaf2506ca9e67ed41e0 100644 (file)
@@ -2,7 +2,7 @@
 #define BABELTRACE2_VALUE_H
 
 /*
- * Copyright (c) 2015-2018 Philippe Proulx <pproulx@efficios.com>
+ * Copyright (c) 2010-2019 EfficiOS Inc. and Linux Foundation
  *
  * Permission is hereby granted, free of charge, to any person obtaining a copy
  * of this software and associated documentation files (the "Software"), to deal
 #include <stdint.h>
 #include <stddef.h>
 
-/* For bt_bool, bt_value */
 #include <babeltrace2/types.h>
-
-/* For bt_value_type */
 #include <babeltrace2/value-const.h>
 
 #ifdef __cplusplus
@@ -48,17 +45,17 @@ extern bt_value *bt_value_bool_create_init(bt_bool val);
 
 extern void bt_value_bool_set(bt_value *bool_obj, bt_bool val);
 
-extern bt_value *bt_value_unsigned_integer_create(void);
+extern bt_value *bt_value_integer_unsigned_create(void);
 
-extern bt_value *bt_value_unsigned_integer_create_init(uint64_t val);
+extern bt_value *bt_value_integer_unsigned_create_init(uint64_t val);
 
-extern void bt_value_unsigned_integer_set(bt_value *integer_obj, uint64_t val);
+extern void bt_value_integer_unsigned_set(bt_value *integer_obj, uint64_t val);
 
-extern bt_value *bt_value_signed_integer_create(void);
+extern bt_value *bt_value_integer_signed_create(void);
 
-extern bt_value *bt_value_signed_integer_create_init(int64_t val);
+extern bt_value *bt_value_integer_signed_create_init(int64_t val);
 
-extern void bt_value_signed_integer_set(bt_value *integer_obj, int64_t val);
+extern void bt_value_integer_signed_set(bt_value *integer_obj, int64_t val);
 
 extern bt_value *bt_value_real_create(void);
 
@@ -108,10 +105,12 @@ extern bt_value_array_append_element_status
 bt_value_array_append_string_element(bt_value *array_obj, const char *val);
 
 extern bt_value_array_append_element_status
-bt_value_array_append_empty_array_element(bt_value *array_obj);
+bt_value_array_append_empty_array_element(bt_value *array_obj,
+               bt_value **element_obj);
 
 extern bt_value_array_append_element_status
-bt_value_array_append_empty_map_element(bt_value *array_obj);
+bt_value_array_append_empty_map_element(bt_value *array_obj,
+               bt_value **element_obj);
 
 typedef enum bt_value_array_set_element_by_index_status {
        BT_VALUE_ARRAY_SET_ELEMENT_BY_INDEX_STATUS_MEMORY_ERROR = __BT_FUNC_STATUS_MEMORY_ERROR,
@@ -127,13 +126,23 @@ extern bt_value *bt_value_map_create(void);
 extern bt_value *bt_value_map_borrow_entry_value(
                bt_value *map_obj, const char *key);
 
-typedef bt_bool (* bt_value_map_foreach_entry_func)(const char *key,
-               bt_value *object, void *data);
+typedef enum bt_value_map_foreach_entry_func_status {
+       BT_VALUE_MAP_FOREACH_ENTRY_FUNC_STATUS_OK               = __BT_FUNC_STATUS_OK,
+       BT_VALUE_MAP_FOREACH_ENTRY_FUNC_STATUS_ERROR            = __BT_FUNC_STATUS_ERROR,
+       BT_VALUE_MAP_FOREACH_ENTRY_FUNC_STATUS_MEMORY_ERROR     = __BT_FUNC_STATUS_MEMORY_ERROR,
+       BT_VALUE_MAP_FOREACH_ENTRY_FUNC_STATUS_INTERRUPT        = __BT_FUNC_STATUS_INTERRUPTED,
+} bt_value_map_foreach_entry_func_status;
+
+typedef bt_value_map_foreach_entry_func_status
+               (* bt_value_map_foreach_entry_func)(const char *key,
+                       bt_value *object, void *data);
 
 typedef enum bt_value_map_foreach_entry_status {
-       BT_VALUE_MAP_FOREACH_ENTRY_STATUS_MEMORY_ERROR  = __BT_FUNC_STATUS_MEMORY_ERROR,
        BT_VALUE_MAP_FOREACH_ENTRY_STATUS_OK            = __BT_FUNC_STATUS_OK,
-       BT_VALUE_MAP_FOREACH_ENTRY_STATUS_CANCELED      = __BT_FUNC_STATUS_CANCELED,
+       BT_VALUE_MAP_FOREACH_ENTRY_STATUS_ERROR         = __BT_FUNC_STATUS_ERROR,
+       BT_VALUE_MAP_FOREACH_ENTRY_STATUS_MEMORY_ERROR  = __BT_FUNC_STATUS_MEMORY_ERROR,
+       BT_VALUE_MAP_FOREACH_ENTRY_STATUS_USER_ERROR    = __BT_FUNC_STATUS_USER_ERROR,
+       BT_VALUE_MAP_FOREACH_ENTRY_STATUS_INTERRUPTED   = __BT_FUNC_STATUS_INTERRUPTED,
 } bt_value_map_foreach_entry_status;
 
 extern bt_value_map_foreach_entry_status bt_value_map_foreach_entry(
@@ -167,10 +176,21 @@ bt_value_map_insert_string_entry(bt_value *map_obj, const char *key,
                const char *val);
 
 extern bt_value_map_insert_entry_status
-bt_value_map_insert_empty_array_entry(bt_value *map_obj, const char *key);
+bt_value_map_insert_empty_array_entry(bt_value *map_obj, const char *key,
+               bt_value **entry_obj);
 
 extern bt_value_map_insert_entry_status
-bt_value_map_insert_empty_map_entry(bt_value *map_obj, const char *key);
+bt_value_map_insert_empty_map_entry(bt_value *map_obj, const char *key,
+               bt_value **entry_obj);
+
+typedef enum bt_value_map_extend_status {
+       BT_VALUE_MAP_EXTEND_STATUS_MEMORY_ERROR = __BT_FUNC_STATUS_MEMORY_ERROR,
+       BT_VALUE_MAP_EXTEND_STATUS_OK           = __BT_FUNC_STATUS_OK,
+} bt_value_map_extend_status;
+
+extern bt_value_map_extend_status bt_value_map_extend(
+               bt_value *base_map_obj,
+               const bt_value *extension_map_obj);
 
 #ifdef __cplusplus
 }
This page took 0.025119 seconds and 4 git commands to generate.