X-Git-Url: http://git.efficios.com/?a=blobdiff_plain;f=include%2Fbabeltrace2%2Fvalue-const.h;h=f42f60d80e98e7cfe03d88e2b68a0fbe72718a5c;hb=60d02328261d37044d37a7d77b3d3847db5c72bf;hp=f9a1d3d093cad57badc49151f8a4fc083e889f4b;hpb=393729a6d00d2d9132000692547720e2e177d69b;p=babeltrace.git diff --git a/include/babeltrace2/value-const.h b/include/babeltrace2/value-const.h index f9a1d3d0..f42f60d8 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); @@ -155,12 +164,22 @@ bt_bool bt_value_map_is_empty(const bt_value *map_obj) extern const bt_value *bt_value_map_borrow_entry_value_const( const bt_value *map_obj, const char *key); -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_func_status { + BT_VALUE_MAP_FOREACH_ENTRY_CONST_FUNC_STATUS_OK = __BT_FUNC_STATUS_OK, + BT_VALUE_MAP_FOREACH_ENTRY_CONST_FUNC_STATUS_ERROR = __BT_FUNC_STATUS_ERROR, + BT_VALUE_MAP_FOREACH_ENTRY_CONST_FUNC_STATUS_MEMORY_ERROR = __BT_FUNC_STATUS_MEMORY_ERROR, + BT_VALUE_MAP_FOREACH_ENTRY_CONST_FUNC_STATUS_INTERRUPT = __BT_FUNC_STATUS_INTERRUPTED, +} bt_value_map_foreach_entry_const_func_status; + +typedef bt_value_map_foreach_entry_const_func_status + (* 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_ERROR = __BT_FUNC_STATUS_ERROR, + BT_VALUE_MAP_FOREACH_ENTRY_CONST_STATUS_MEMORY_ERROR = __BT_FUNC_STATUS_MEMORY_ERROR, + BT_VALUE_MAP_FOREACH_ENTRY_CONST_STATUS_USER_ERROR = __BT_FUNC_STATUS_USER_ERROR, BT_VALUE_MAP_FOREACH_ENTRY_CONST_STATUS_INTERRUPTED = __BT_FUNC_STATUS_INTERRUPTED, } bt_value_map_foreach_entry_const_status; @@ -171,16 +190,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);