Babeltrace 2 C API  2.0.3
Open-source trace manipulation framework
self-component-class.h
1 #ifndef BABELTRACE2_GRAPH_SELF_COMPONENT_CLASS_H
2 #define BABELTRACE2_GRAPH_SELF_COMPONENT_CLASS_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 
103 static inline
105  bt_self_component_class *self_component_class)
106 {
107  return __BT_UPCAST(bt_component_class, self_component_class);
108 }
109 
126 static inline
129  bt_self_component_class_source *self_component_class)
130 {
131  return __BT_UPCAST_CONST(bt_component_class_source,
132  self_component_class);
133 }
134 
151 static inline
154  bt_self_component_class_filter *self_component_class)
155 {
156  return __BT_UPCAST_CONST(bt_component_class_filter,
157  self_component_class);
158 }
159 
176 static inline
179  bt_self_component_class_sink *self_component_class)
180 {
181  return __BT_UPCAST_CONST(bt_component_class_sink, self_component_class);
182 }
183 
207 static inline
210  bt_self_component_class_source *self_component_class)
211 {
212  return __BT_UPCAST(bt_self_component_class, self_component_class);
213 }
214 
231 static inline
234  bt_self_component_class_filter *self_component_class)
235 {
236  return __BT_UPCAST(bt_self_component_class, self_component_class);
237 }
238 
255 static inline
258  bt_self_component_class_sink *self_component_class)
259 {
260  return __BT_UPCAST(bt_self_component_class, self_component_class);
261 }
262 
267 #ifdef __cplusplus
268 }
269 #endif
270 
271 #endif /* BABELTRACE2_GRAPH_SELF_COMPONENT_CLASS_H */
struct bt_component_class_source bt_component_class_source
Source component class.
Definition: types.h:42
static bt_self_component_class * bt_self_component_class_sink_as_self_component_class(bt_self_component_class_sink *self_component_class)
Upcasts the self sink component class self_component_class to the common bt_self_component_class type...
Definition: self-component-class.h:257
static const bt_component_class_sink * bt_self_component_class_sink_as_component_class_sink(bt_self_component_class_sink *self_component_class)
Upcasts the self sink component class self_component_class to the public bt_component_class_sink type...
Definition: self-component-class.h:178
struct bt_component_class_filter bt_component_class_filter
Filter component class.
Definition: types.h:40
static const bt_component_class * bt_self_component_class_as_component_class(bt_self_component_class *self_component_class)
Upcasts the self component class self_component_class to the public bt_component_class type...
Definition: self-component-class.h:104
static bt_self_component_class * bt_self_component_class_filter_as_self_component_class(bt_self_component_class_filter *self_component_class)
Upcasts the self filter component class self_component_class to the common bt_self_component_class ty...
Definition: self-component-class.h:233
struct bt_component_class bt_component_class
Component class.
Definition: types.h:39
struct bt_self_component_class_source bt_self_component_class_source
Self source component class.
Definition: types.h:89
struct bt_self_component_class_filter bt_self_component_class_filter
Self filter component class.
Definition: types.h:87
static const bt_component_class_filter * bt_self_component_class_filter_as_component_class_filter(bt_self_component_class_filter *self_component_class)
Upcasts the self filter component class self_component_class to the public bt_component_class_filter ...
Definition: self-component-class.h:153
struct bt_component_class_sink bt_component_class_sink
Sink component class.
Definition: types.h:41
struct bt_self_component_class_sink bt_self_component_class_sink
Self sink component class.
Definition: types.h:88
static bt_self_component_class * bt_self_component_class_source_as_self_component_class(bt_self_component_class_source *self_component_class)
Upcasts the self source component class self_component_class to the common bt_self_component_class ty...
Definition: self-component-class.h:209
struct bt_self_component_class bt_self_component_class
Self component class.
Definition: types.h:86
static const bt_component_class_source * bt_self_component_class_source_as_component_class_source(bt_self_component_class_source *self_component_class)
Upcasts the self source component class self_component_class to the public bt_component_class_source ...
Definition: self-component-class.h:128