Babeltrace 2 C API  2.0.3
Open-source trace manipulation framework
 All Functions Variables Typedefs Enumerations Enumerator Modules Pages
interrupter.h
1 #ifndef BABELTRACE2_GRAPH_INTERRUPTER_H
2 #define BABELTRACE2_GRAPH_INTERRUPTER_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 <babeltrace2/types.h>
31 
32 #ifdef __cplusplus
33 extern "C" {
34 #endif
35 
126 
151 extern void bt_interrupter_set(bt_interrupter *interrupter);
152 
170 extern void bt_interrupter_reset(bt_interrupter *interrupter);
171 
189 extern bt_bool bt_interrupter_is_set(const bt_interrupter *interrupter);
190 
213 extern void bt_interrupter_get_ref(const bt_interrupter *interrupter);
214 
230 extern void bt_interrupter_put_ref(const bt_interrupter *interrupter);
231 
246 #define BT_INTERRUPTER_PUT_REF_AND_RESET(_interrupter) \
247  do { \
248  bt_interrupter_put_ref(_interrupter); \
249  (_interrupter) = NULL; \
250  } while (0)
251 
277 #define BT_INTERRUPTER_MOVE_REF(_dst, _src) \
278  do { \
279  bt_interrupter_put_ref(_dst); \
280  (_dst) = (_src); \
281  (_src) = NULL; \
282  } while (0)
283 
288 #ifdef __cplusplus
289 }
290 #endif
291 
292 #endif /* BABELTRACE2_GRAPH_INTERRUPTER_H */
bt_interrupter * bt_interrupter_create(void)
Creates a default interrupter.
void bt_interrupter_put_ref(const bt_interrupter *interrupter)
Decrements the reference count of the interrupter interrupter.
struct bt_interrupter bt_interrupter
Interrupter.
Definition: types.h:70
int bt_bool
Babeltrace 2 boolean type.
Definition: types.h:140
bt_bool bt_interrupter_is_set(const bt_interrupter *interrupter)
Returns whether or not the interrupter interrupter is set.
void bt_interrupter_get_ref(const bt_interrupter *interrupter)
Increments the reference count of the interrupter interrupter.
void bt_interrupter_reset(bt_interrupter *interrupter)
Resets the interrupter interrupter.
void bt_interrupter_set(bt_interrupter *interrupter)
Sets the interrupter interrupter.