X-Git-Url: https://git.efficios.com/?a=blobdiff_plain;f=include%2Fbabeltrace2%2Fvalue-const.h;h=0001ddd8d1e33e0a39e2621fb51f19aae489df58;hb=5d2d8d1848c049f98c4b163944b5a45128044ca1;hp=3ac4783d49b198fa98567d146cee7f413506d981;hpb=60bbfc7c8b30e092afdf97554a72cc25706ef8e9;p=babeltrace.git diff --git a/include/babeltrace2/value-const.h b/include/babeltrace2/value-const.h index 3ac4783d..0001ddd8 100644 --- a/include/babeltrace2/value-const.h +++ b/include/babeltrace2/value-const.h @@ -38,32 +38,41 @@ extern "C" { typedef enum bt_value_type { /// Null value object. - BT_VALUE_TYPE_NULL = 0, + BT_VALUE_TYPE_NULL = 1 << 0, /// Boolean value object (holds #BT_TRUE or #BT_FALSE). - BT_VALUE_TYPE_BOOL = 1, + BT_VALUE_TYPE_BOOL = 1 << 1, + + BT_VALUE_TYPE_INTEGER = 1 << 2, /// Unsigned integer value object (holds an unsigned 64-bit integer raw value). - BT_VALUE_TYPE_UNSIGNED_INTEGER = 2, + BT_VALUE_TYPE_UNSIGNED_INTEGER = (1 << 3) | BT_VALUE_TYPE_INTEGER, /// Signed integer value object (holds a signed 64-bit integer raw value). - BT_VALUE_TYPE_SIGNED_INTEGER = 3, + BT_VALUE_TYPE_SIGNED_INTEGER = (1 << 4) | BT_VALUE_TYPE_INTEGER, /// Floating point number value object (holds a \c double raw value). - BT_VALUE_TYPE_REAL = 4, + BT_VALUE_TYPE_REAL = 1 << 5, /// String value object. - BT_VALUE_TYPE_STRING = 5, + BT_VALUE_TYPE_STRING = 1 << 6, /// Array value object. - BT_VALUE_TYPE_ARRAY = 6, + BT_VALUE_TYPE_ARRAY = 1 << 7, /// Map value object. - BT_VALUE_TYPE_MAP = 7, + BT_VALUE_TYPE_MAP = 1 << 8, } bt_value_type; extern bt_value_type bt_value_get_type(const bt_value *object); +static inline +bt_bool bt_value_type_is(const bt_value_type type, + const bt_value_type type_to_check) +{ + return (type & type_to_check) == type_to_check; +} + static inline bt_bool bt_value_is_null(const bt_value *object) { @@ -120,7 +129,7 @@ typedef enum bt_value_copy_status { extern bt_value_copy_status bt_value_copy(const bt_value *object, bt_value **copy); -extern bt_bool bt_value_compare(const bt_value *object_a, +extern bt_bool bt_value_is_equal(const bt_value *object_a, const bt_value *object_b); extern bt_bool bt_value_bool_get(const bt_value *bool_obj); @@ -133,12 +142,12 @@ extern double bt_value_real_get(const bt_value *real_obj); extern const char *bt_value_string_get(const bt_value *string_obj); -extern uint64_t bt_value_array_get_size(const bt_value *array_obj); +extern uint64_t bt_value_array_get_length(const bt_value *array_obj); static inline bt_bool bt_value_array_is_empty(const bt_value *array_obj) { - return bt_value_array_get_size(array_obj) == 0; + return bt_value_array_get_length(array_obj) == 0; } extern const bt_value *bt_value_array_borrow_element_by_index_const( @@ -159,9 +168,8 @@ typedef bt_bool (* bt_value_map_foreach_entry_const_func)(const char *key, const bt_value *object, void *data); typedef enum bt_value_map_foreach_entry_const_status { - BT_VALUE_MAP_FOREACH_ENTRY_CONST_STATUS_MEMORY_ERROR = __BT_FUNC_STATUS_MEMORY_ERROR, BT_VALUE_MAP_FOREACH_ENTRY_CONST_STATUS_OK = __BT_FUNC_STATUS_OK, - BT_VALUE_MAP_FOREACH_ENTRY_CONST_STATUS_CANCELED = __BT_FUNC_STATUS_CANCELED, + BT_VALUE_MAP_FOREACH_ENTRY_CONST_STATUS_INTERRUPTED = __BT_FUNC_STATUS_INTERRUPTED, } bt_value_map_foreach_entry_const_status; extern bt_value_map_foreach_entry_const_status bt_value_map_foreach_entry_const( @@ -171,16 +179,6 @@ extern bt_value_map_foreach_entry_const_status bt_value_map_foreach_entry_const( extern bt_bool bt_value_map_has_entry(const bt_value *map_obj, const char *key); -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( - const bt_value *base_map_obj, - const bt_value *extension_map_obj, - bt_value **extended_map_obj); - extern void bt_value_get_ref(const bt_value *value); extern void bt_value_put_ref(const bt_value *value);