X-Git-Url: http://git.efficios.com/?a=blobdiff_plain;f=src%2Flib%2Finteger-range-set.c;h=1e27e1895655f15bae8dad1a78406bcdfc07076c;hb=HEAD;hp=9a5e817deb82d6706894a71ae7eece3522c59c60;hpb=0235b0db7de5bcacdb3650c92461f2ce5eb2143d;p=babeltrace.git diff --git a/src/lib/integer-range-set.c b/src/lib/integer-range-set.c index 9a5e817d..1e27e189 100644 --- a/src/lib/integer-range-set.c +++ b/src/lib/integer-range-set.c @@ -11,44 +11,48 @@ #include -#include "lib/assert-pre.h" +#include "lib/assert-cond.h" #include "common/assert.h" #include "func-status.h" #include "integer-range-set.h" +BT_EXPORT uint64_t bt_integer_range_unsigned_get_lower( const struct bt_integer_range_unsigned *u_range) { const struct bt_integer_range *range = (const void *) u_range; - BT_ASSERT_PRE_DEV_NON_NULL(range, "Integer range"); + BT_ASSERT_PRE_DEV_INT_RANGE_NON_NULL(range); return range->lower.u; } +BT_EXPORT uint64_t bt_integer_range_unsigned_get_upper( const struct bt_integer_range_unsigned *u_range) { const struct bt_integer_range *range = (const void *) u_range; - BT_ASSERT_PRE_DEV_NON_NULL(range, "Integer range"); + BT_ASSERT_PRE_DEV_INT_RANGE_NON_NULL(range); return range->upper.u; } +BT_EXPORT int64_t bt_integer_range_signed_get_lower( const struct bt_integer_range_signed *i_range) { const struct bt_integer_range *range = (const void *) i_range; - BT_ASSERT_PRE_DEV_NON_NULL(range, "Integer range"); + BT_ASSERT_PRE_DEV_INT_RANGE_NON_NULL(range); return range->lower.i; } +BT_EXPORT int64_t bt_integer_range_signed_get_upper( const struct bt_integer_range_signed *i_range) { const struct bt_integer_range *range = (const void *) i_range; - BT_ASSERT_PRE_DEV_NON_NULL(range, "Integer range"); + BT_ASSERT_PRE_DEV_INT_RANGE_NON_NULL(range); return range->upper.i; } @@ -60,33 +64,41 @@ bool compare_ranges(const struct bt_integer_range *range_a, range_a->upper.u == range_b->upper.u; } +BT_EXPORT bt_bool bt_integer_range_unsigned_is_equal( const struct bt_integer_range_unsigned *range_a, const struct bt_integer_range_unsigned *range_b) { - BT_ASSERT_PRE_DEV_NON_NULL(range_a, "Integer range A"); - BT_ASSERT_PRE_DEV_NON_NULL(range_b, "Integer range B"); + BT_ASSERT_PRE_DEV_NON_NULL("integer-range-a", range_a, + "Integer range A"); + BT_ASSERT_PRE_DEV_NON_NULL("integer-range-b", range_b, + "Integer range B"); return (bt_bool) compare_ranges((const void *) range_a, (const void *) range_b); } +BT_EXPORT bt_bool bt_integer_range_signed_is_equal( const struct bt_integer_range_signed *range_a, const struct bt_integer_range_signed *range_b) { - BT_ASSERT_PRE_DEV_NON_NULL(range_a, "Integer range A"); - BT_ASSERT_PRE_DEV_NON_NULL(range_b, "Integer range B"); + BT_ASSERT_PRE_DEV_NON_NULL("integer-range-a", range_a, + "Integer range A"); + BT_ASSERT_PRE_DEV_NON_NULL("integer-range-b", range_b, + "Integer range B"); return (bt_bool) compare_ranges((const void *) range_a, (const void *) range_b); } +BT_EXPORT uint64_t bt_integer_range_set_get_range_count( const bt_integer_range_set *range_set) { - BT_ASSERT_PRE_DEV_NON_NULL(range_set, "Integer range set"); + BT_ASSERT_PRE_DEV_INT_RANGE_SET_NON_NULL(range_set); return (uint64_t) range_set->ranges->len; } +BT_EXPORT const struct bt_integer_range_unsigned * bt_integer_range_set_unsigned_borrow_range_by_index_const( const bt_integer_range_set_unsigned *u_range_set, @@ -95,12 +107,13 @@ bt_integer_range_set_unsigned_borrow_range_by_index_const( const struct bt_integer_range_set *range_set = (const void *) u_range_set; - BT_ASSERT_PRE_DEV_NON_NULL(range_set, "Integer range set"); + BT_ASSERT_PRE_DEV_INT_RANGE_SET_NON_NULL(range_set); BT_ASSERT_PRE_DEV_VALID_INDEX(index, range_set->ranges->len); return (const void *) BT_INTEGER_RANGE_SET_RANGE_AT_INDEX(range_set, index); } +BT_EXPORT const struct bt_integer_range_signed * bt_integer_range_set_signed_borrow_range_by_index_const( const bt_integer_range_set_signed *i_range_set, uint64_t index) @@ -108,7 +121,7 @@ bt_integer_range_set_signed_borrow_range_by_index_const( const struct bt_integer_range_set *range_set = (const void *) i_range_set; - BT_ASSERT_PRE_DEV_NON_NULL(range_set, "Integer range set"); + BT_ASSERT_PRE_DEV_INT_RANGE_SET_NON_NULL(range_set); BT_ASSERT_PRE_DEV_VALID_INDEX(index, range_set->ranges->len); return (const void *) BT_INTEGER_RANGE_SET_RANGE_AT_INDEX(range_set, index); @@ -162,6 +175,7 @@ end: return range_set; } +BT_EXPORT struct bt_integer_range_set_unsigned *bt_integer_range_set_unsigned_create(void) { BT_ASSERT_PRE_NO_ERROR(); @@ -169,6 +183,7 @@ struct bt_integer_range_set_unsigned *bt_integer_range_set_unsigned_create(void) return (void *) create_range_set(); } +BT_EXPORT struct bt_integer_range_set_signed *bt_integer_range_set_signed_create(void) { BT_ASSERT_PRE_NO_ERROR(); @@ -185,35 +200,37 @@ void add_range_to_range_set(struct bt_integer_range_set *range_set, .upper.u = u_upper, }; - BT_ASSERT_PRE_NON_NULL(range_set, "Integer range set"); - BT_ASSERT_PRE_DEV_HOT(range_set, "Integer range set", ": %!+R", - range_set); + BT_ASSERT_PRE_INT_RANGE_SET_NON_NULL(range_set); + BT_ASSERT_PRE_DEV_HOT("integer-range-set", range_set, + "Integer range set", ": %!+R", range_set); g_array_append_val(range_set->ranges, range); BT_LIB_LOGD("Added integer range to integer range set: " "%![range-set-]+R, lower-unsigned=%" PRIu64 ", " "upper-unsigned=%" PRIu64, range_set, u_lower, u_upper); } +BT_EXPORT enum bt_integer_range_set_add_range_status bt_integer_range_set_unsigned_add_range( struct bt_integer_range_set_unsigned *range_set, uint64_t lower, uint64_t upper) { BT_ASSERT_PRE_NO_ERROR(); - BT_ASSERT_PRE(lower <= upper, + BT_ASSERT_PRE("lower-lteq-upper", lower <= upper, "Range's upper bound is less than lower bound: " "upper=%" PRIu64 ", lower=%" PRIu64, lower, upper); add_range_to_range_set((void *) range_set, lower, upper); return BT_FUNC_STATUS_OK; } +BT_EXPORT enum bt_integer_range_set_add_range_status bt_integer_range_set_signed_add_range( struct bt_integer_range_set_signed *range_set, int64_t lower, int64_t upper) { BT_ASSERT_PRE_NO_ERROR(); - BT_ASSERT_PRE(lower <= upper, + BT_ASSERT_PRE("lower-lteq-upper", lower <= upper, "Range's upper bound is less than lower bound: " "upper=%" PRId64 ", lower=%" PRId64, lower, upper); add_range_to_range_set((void *) range_set, @@ -221,7 +238,6 @@ bt_integer_range_set_signed_add_range( return BT_FUNC_STATUS_OK; } -BT_HIDDEN void _bt_integer_range_set_freeze(const struct bt_integer_range_set *range_set) { BT_ASSERT(range_set); @@ -229,7 +245,6 @@ void _bt_integer_range_set_freeze(const struct bt_integer_range_set *range_set) ((struct bt_integer_range_set *) range_set)->frozen = true; } -BT_HIDDEN bool bt_integer_range_set_unsigned_has_overlaps( const struct bt_integer_range_set *range_set) { @@ -263,7 +278,6 @@ end: return has_overlap; } -BT_HIDDEN bool bt_integer_range_set_signed_has_overlaps( const struct bt_integer_range_set *range_set) { @@ -347,44 +361,54 @@ end: return is_equal; } +BT_EXPORT bt_bool bt_integer_range_set_unsigned_is_equal( const struct bt_integer_range_set_unsigned *range_set_a, const struct bt_integer_range_set_unsigned *range_set_b) { - BT_ASSERT_PRE_DEV_NON_NULL(range_set_a, "Range set A"); - BT_ASSERT_PRE_DEV_NON_NULL(range_set_b, "Range set B"); + BT_ASSERT_PRE_DEV_NON_NULL("integer-range-set-a", range_set_a, + "Range set A"); + BT_ASSERT_PRE_DEV_NON_NULL("integer-range-set-b", range_set_b, + "Range set B"); return (bt_bool) compare_range_sets((const void *) range_set_a, (const void *) range_set_b); } +BT_EXPORT bt_bool bt_integer_range_set_signed_is_equal( const struct bt_integer_range_set_signed *range_set_a, const struct bt_integer_range_set_signed *range_set_b) { - BT_ASSERT_PRE_DEV_NON_NULL(range_set_a, "Range set A"); - BT_ASSERT_PRE_DEV_NON_NULL(range_set_b, "Range set B"); + BT_ASSERT_PRE_DEV_NON_NULL("integer-range-set-a", range_set_a, + "Range set A"); + BT_ASSERT_PRE_DEV_NON_NULL("integer-range-set-b", range_set_b, + "Range set B"); return (bt_bool) compare_range_sets((const void *) range_set_a, (const void *) range_set_b); } +BT_EXPORT void bt_integer_range_set_unsigned_get_ref( const struct bt_integer_range_set_unsigned *range_set) { bt_object_get_ref(range_set); } +BT_EXPORT void bt_integer_range_set_unsigned_put_ref( const struct bt_integer_range_set_unsigned *range_set) { bt_object_put_ref(range_set); } +BT_EXPORT void bt_integer_range_set_signed_get_ref( const struct bt_integer_range_set_signed *range_set) { bt_object_get_ref(range_set); } +BT_EXPORT void bt_integer_range_set_signed_put_ref( const struct bt_integer_range_set_signed *range_set) {