Visibility hidden by default
[babeltrace.git] / src / lib / integer-range-set.c
index 35483c93b27865818d018e52cb48fdb033dc4869..1e27e1895655f15bae8dad1a78406bcdfc07076c 100644 (file)
@@ -1,67 +1,58 @@
 /*
- * Copyright 2019 Philippe Proulx <pproulx@efficios.com>
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
+ * SPDX-License-Identifier: MIT
  *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
- * SOFTWARE.
+ * Copyright 2019 Philippe Proulx <pproulx@efficios.com>
  */
 
 #define BT_LOG_TAG "LIB/INT-RANGE-SET"
 #include "lib/logging.h"
 
+#include <stdbool.h>
+
 #include <babeltrace2/babeltrace.h>
-#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;
 }
 
@@ -73,33 +64,41 @@ bool compare_ranges(const struct bt_integer_range *range_a,
                range_a->upper.u == range_b->upper.u;
 }
 
-bt_bool bt_integer_range_unsigned_compare(
+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_bool bt_integer_range_signed_compare(
+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,
@@ -108,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)
@@ -121,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);
@@ -175,16 +175,23 @@ end:
        return range_set;
 }
 
+BT_EXPORT
 struct bt_integer_range_set_unsigned *bt_integer_range_set_unsigned_create(void)
 {
+       BT_ASSERT_PRE_NO_ERROR();
+
        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();
+
        return (void *) create_range_set();
 }
 
+static
 void add_range_to_range_set(struct bt_integer_range_set *range_set,
                uint64_t u_lower, uint64_t u_upper)
 {
@@ -193,33 +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(lower <= upper,
+       BT_ASSERT_PRE_NO_ERROR();
+       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(lower <= upper,
+       BT_ASSERT_PRE_NO_ERROR();
+       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,
@@ -227,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);
@@ -235,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)
 {
@@ -269,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)
 {
@@ -310,8 +318,8 @@ bool compare_range_sets(const struct bt_integer_range_set *range_set_a,
        uint64_t a_i, b_i;
        bool is_equal = true;
 
-       BT_ASSERT(range_set_a);
-       BT_ASSERT(range_set_b);
+       BT_ASSERT_DBG(range_set_a);
+       BT_ASSERT_DBG(range_set_b);
 
        if (range_set_a == range_set_b) {
                goto end;
@@ -353,44 +361,54 @@ end:
        return is_equal;
 }
 
-bt_bool bt_integer_range_set_unsigned_compare(
+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_bool bt_integer_range_set_signed_compare(
+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)
 {
This page took 0.03237 seconds and 4 git commands to generate.