Babeltrace 2 C API 2.0.6
Open-source trace manipulation framework
Loading...
Searching...
No Matches
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
36extern "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
239 const bt_integer_range_signed *int_range);
240
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
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
412extern 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
458static 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
636extern 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
681static 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 */
int bt_bool
Babeltrace&#160;2 boolean type.
Definition types.h:140
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.
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.
bt_integer_range_set_unsigned * bt_integer_range_set_unsigned_create(void)
Creates and returns an empty set of unsigned 64-bit integer ranges.
struct bt_integer_range_set_unsigned bt_integer_range_set_unsigned
Set of unsigned 64-bit integer ranges.
Definition types.h:67
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_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
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_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...
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.
struct bt_integer_range_set bt_integer_range_set
Set of 64-bit integer ranges.
Definition types.h:65
struct bt_integer_range_unsigned bt_integer_range_unsigned
Unsigned 64-bit integer range.
Definition types.h:69
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.
struct bt_integer_range_set_signed bt_integer_range_set_signed
Set of signed 64-bit integer ranges.
Definition types.h:66
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.
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.
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.
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_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...
struct bt_integer_range_signed bt_integer_range_signed
Signed 64-bit integer range.
Definition types.h:68
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.
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.
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.
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
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.
bt_integer_range_set_signed * bt_integer_range_set_signed_create(void)
Creates and returns an empty set of signed 64-bit integer ranges.
@ BT_INTEGER_RANGE_SET_ADD_RANGE_STATUS_MEMORY_ERROR
Out of memory.
Definition integer-range-set.h:307
@ BT_INTEGER_RANGE_SET_ADD_RANGE_STATUS_OK
Success.
Definition integer-range-set.h:301