Babeltrace 2 C API  2.0.4
Open-source trace manipulation framework
integer-range-set.h
1 #ifndef BABELTRACE2_INTEGER_RANGE_SET_H
2 #define BABELTRACE2_INTEGER_RANGE_SET_H
3 
4 /*
5  * Copyright (c) 2010-2019 EfficiOS Inc. and Linux Foundation
6  *
7  * Permission is hereby granted, free of charge, to any person obtaining a copy
8  * of this software and associated documentation files (the "Software"), to deal
9  * in the Software without restriction, including without limitation the rights
10  * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
11  * copies of the Software, and to permit persons to whom the Software is
12  * furnished to do so, subject to the following conditions:
13  *
14  * The above copyright notice and this permission notice shall be included in
15  * all copies or substantial portions of the Software.
16  *
17  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
18  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
19  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
20  * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
21  * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
22  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
23  * SOFTWARE.
24  */
25 
26 #ifndef __BT_IN_BABELTRACE_H
27 # error "Please include <babeltrace2/babeltrace.h> instead."
28 #endif
29 
30 #include <stdint.h>
31 #include <stddef.h>
32 
33 #include <babeltrace2/types.h>
34 
35 #ifdef __cplusplus
36 extern "C" {
37 #endif
38 
170  const bt_integer_range_unsigned *int_range);
171 
189  const bt_integer_range_unsigned *int_range);
190 
212  const bt_integer_range_unsigned *a_int_range,
213  const bt_integer_range_unsigned *b_int_range);
214 
238 extern int64_t bt_integer_range_signed_get_lower(
239  const bt_integer_range_signed *int_range);
240 
257 extern int64_t bt_integer_range_signed_get_upper(
258  const bt_integer_range_signed *int_range);
259 
281  const bt_integer_range_signed *a_int_range,
282  const bt_integer_range_signed *b_int_range);
283 
302 
307  BT_INTEGER_RANGE_SET_ADD_RANGE_STATUS_MEMORY_ERROR = __BT_FUNC_STATUS_MEMORY_ERROR,
309 
332  const bt_integer_range_set *int_range_set);
333 
349 
382  bt_integer_range_set_unsigned *int_range_set,
383  uint64_t lower, uint64_t upper);
384 
412 extern const bt_integer_range_unsigned *
414  const bt_integer_range_set_unsigned *int_range_set,
415  uint64_t index);
416 
440  const bt_integer_range_set_unsigned *int_range_set_a,
441  const bt_integer_range_set_unsigned *int_range_set_b);
442 
458 static inline
460  const bt_integer_range_set_unsigned *int_range_set)
461 {
462  return __BT_UPCAST_CONST(bt_integer_range_set, int_range_set);
463 }
464 
482  const bt_integer_range_set_unsigned *int_range_set);
483 
501  const bt_integer_range_set_unsigned *int_range_set);
502 
519 #define BT_INTEGER_RANGE_SET_UNSIGNED_PUT_REF_AND_RESET(_int_range_set) \
520  do { \
521  bt_integer_range_set_unsigned_put_ref(_int_range_set); \
522  (_int_range_set) = NULL; \
523  } while (0)
524 
551 #define BT_INTEGER_RANGE_SET_UNSIGNED_MOVE_REF(_dst, _src) \
552  do { \
553  bt_integer_range_set_unsigned_put_ref(_dst); \
554  (_dst) = (_src); \
555  (_src) = NULL; \
556  } while (0)
557 
573 
606  bt_integer_range_set_signed *int_range_set,
607  int64_t lower, int64_t upper);
608 
636 extern const bt_integer_range_signed *
638  const bt_integer_range_set_signed *int_range_set, uint64_t index);
639 
663  const bt_integer_range_set_signed *int_range_set_a,
664  const bt_integer_range_set_signed *int_range_set_b);
665 
681 static inline
683  const bt_integer_range_set_signed *int_range_set)
684 {
685  return __BT_UPCAST_CONST(bt_integer_range_set, int_range_set);
686 }
687 
705  const bt_integer_range_set_signed *int_range_set);
706 
724  const bt_integer_range_set_signed *int_range_set);
725 
742 #define BT_INTEGER_RANGE_SET_SIGNED_PUT_REF_AND_RESET(_int_range_set) \
743  do { \
744  bt_integer_range_set_signed_put_ref(_int_range_set); \
745  (_int_range_set) = NULL; \
746  } while (0)
747 
774 #define BT_INTEGER_RANGE_SET_SIGNED_MOVE_REF(_dst, _src) \
775  do { \
776  bt_integer_range_set_signed_put_ref(_dst); \
777  (_dst) = (_src); \
778  (_src) = NULL; \
779  } while (0)
780 
785 #ifdef __cplusplus
786 }
787 #endif
788 
789 #endif /* BABELTRACE2_INTEGER_RANGE_SET_H */
struct bt_integer_range_unsigned bt_integer_range_unsigned
Unsigned 64-bit integer range.
Definition: types.h:69
struct bt_integer_range_set_unsigned bt_integer_range_set_unsigned
Set of unsigned 64-bit integer ranges.
Definition: types.h:67
bt_integer_range_set_add_range_status bt_integer_range_set_signed_add_range(bt_integer_range_set_signed *int_range_set, int64_t lower, int64_t upper)
Adds a signed 64-bit integer range having the lower value lower and the upper value upper to the sign...
const bt_integer_range_signed * bt_integer_range_set_signed_borrow_range_by_index_const(const bt_integer_range_set_signed *int_range_set, uint64_t index)
Borrows the signed integer range at index index from the signed integer range set int_range_set...
Out of memory.
Definition: integer-range-set.h:307
bt_bool bt_integer_range_set_unsigned_is_equal(const bt_integer_range_set_unsigned *int_range_set_a, const bt_integer_range_set_unsigned *int_range_set_b)
Returns whether or not the unsigned integer range set int_range_set_a is equal to int_range_set_b...
bt_integer_range_set_unsigned * bt_integer_range_set_unsigned_create(void)
Creates and returns an empty set of unsigned 64-bit integer ranges.
const bt_integer_range_unsigned * bt_integer_range_set_unsigned_borrow_range_by_index_const(const bt_integer_range_set_unsigned *int_range_set, uint64_t index)
Borrows the unsigned integer range at index index from the unsigned integer range set int_range_set...
bt_bool bt_integer_range_unsigned_is_equal(const bt_integer_range_unsigned *a_int_range, const bt_integer_range_unsigned *b_int_range)
Returns whether or not the unsigned integer range a_int_range is equal to b_int_range.
bt_bool bt_integer_range_set_signed_is_equal(const bt_integer_range_set_signed *int_range_set_a, const bt_integer_range_set_signed *int_range_set_b)
Returns whether or not the signed integer range set int_range_set_a is equal to int_range_set_b.
void bt_integer_range_set_signed_get_ref(const bt_integer_range_set_signed *int_range_set)
Increments the reference count of the signed integer range set int_range_set.
int64_t bt_integer_range_signed_get_lower(const bt_integer_range_signed *int_range)
Returns the lower value of the signed integer range int_range.
static const bt_integer_range_set * bt_integer_range_set_unsigned_as_range_set_const(const bt_integer_range_set_unsigned *int_range_set)
Upcasts the unsigned integer range set int_range_set to the abstract bt_integer_range_set type...
Definition: integer-range-set.h:459
bt_integer_range_set_add_range_status bt_integer_range_set_unsigned_add_range(bt_integer_range_set_unsigned *int_range_set, uint64_t lower, uint64_t upper)
Adds an unsigned 64-bit integer range having the lower value lower and the upper value upper to the u...
struct bt_integer_range_signed bt_integer_range_signed
Signed 64-bit integer range.
Definition: types.h:68
int bt_bool
Babeltrace 2 boolean type.
Definition: types.h:140
bt_integer_range_set_add_range_status
Status codes for bt_integer_range_set_unsigned_add_range() and bt_integer_range_set_signed_add_range(...
Definition: integer-range-set.h:296
struct bt_integer_range_set_signed bt_integer_range_set_signed
Set of signed 64-bit integer ranges.
Definition: types.h:66
static const bt_integer_range_set * bt_integer_range_set_signed_as_range_set_const(const bt_integer_range_set_signed *int_range_set)
Upcasts the signed integer range set int_range_set to the abstract bt_integer_range_set type...
Definition: integer-range-set.h:682
uint64_t bt_integer_range_unsigned_get_upper(const bt_integer_range_unsigned *int_range)
Returns the upper value of the unsigned integer range int_range.
bt_bool bt_integer_range_signed_is_equal(const bt_integer_range_signed *a_int_range, const bt_integer_range_signed *b_int_range)
Returns whether or not the signed integer range a_int_range is equal to b_int_range.
void bt_integer_range_set_signed_put_ref(const bt_integer_range_set_signed *int_range_set)
Decrements the reference count of the signed integer range set int_range_set.
int64_t bt_integer_range_signed_get_upper(const bt_integer_range_signed *int_range)
Returns the upper value of the signed integer range int_range.
struct bt_integer_range_set bt_integer_range_set
Set of 64-bit integer ranges.
Definition: types.h:65
Success.
Definition: integer-range-set.h:301
void bt_integer_range_set_unsigned_get_ref(const bt_integer_range_set_unsigned *int_range_set)
Increments the reference count of the unsigned integer range set int_range_set.
uint64_t bt_integer_range_unsigned_get_lower(const bt_integer_range_unsigned *int_range)
Returns the lower value of the unsigned integer range int_range.
void bt_integer_range_set_unsigned_put_ref(const bt_integer_range_set_unsigned *int_range_set)
Decrements the reference count of the unsigned integer range set int_range_set.
uint64_t bt_integer_range_set_get_range_count(const bt_integer_range_set *int_range_set)
Returns the number of integer ranges contained in the integer range set int_range_set.
bt_integer_range_set_signed * bt_integer_range_set_signed_create(void)
Creates and returns an empty set of signed 64-bit integer ranges.