Babeltrace 2 C API 2.0.6
Open-source trace manipulation framework
Loading...
Searching...
No Matches
component-class.h
1#ifndef BABELTRACE2_GRAPH_COMPONENT_CLASS_H
2#define BABELTRACE2_GRAPH_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
33extern "C" {
34#endif
35
233
255 const bt_component_class *component_class);
256
273static inline
275 const bt_component_class *component_class)
276{
277 return bt_component_class_get_type(component_class) ==
279}
280
297static inline
299 const bt_component_class *component_class)
300{
301 return bt_component_class_get_type(component_class) ==
303}
304
321static inline
323 const bt_component_class *component_class)
324{
325 return bt_component_class_get_type(component_class) ==
327}
328
356 const bt_component_class *component_class);
357
379 const bt_component_class *component_class);
380
401 const bt_component_class *component_class);
402
426 const bt_component_class *component_class);
427
444 const bt_component_class *component_class);
445
461#define BT_COMPONENT_CLASS_PUT_REF_AND_RESET(_component_class) \
462 do { \
463 bt_component_class_put_ref(_component_class); \
464 (_component_class) = NULL; \
465 } while (0)
466
494#define BT_COMPONENT_CLASS_MOVE_REF(_dst, _src) \
495 do { \
496 bt_component_class_put_ref(_dst); \
497 (_dst) = (_src); \
498 (_src) = NULL; \
499 } while (0)
500
523static inline
524const bt_component_class *
526 const bt_component_class_source *component_class)
527{
528 return __BT_UPCAST_CONST(bt_component_class, component_class);
529}
530
554 const bt_component_class_source *component_class);
555
572 const bt_component_class_source *component_class);
573
589#define BT_COMPONENT_CLASS_SOURCE_PUT_REF_AND_RESET(_component_class) \
590 do { \
591 bt_component_class_source_put_ref(_component_class); \
592 (_component_class) = NULL; \
593 } while (0)
594
621#define BT_COMPONENT_CLASS_SOURCE_MOVE_REF(_dst, _src) \
622 do { \
623 bt_component_class_source_put_ref(_dst); \
624 (_dst) = (_src); \
625 (_src) = NULL; \
626 } while (0)
627
650static inline
651const bt_component_class *
653 const bt_component_class_filter *component_class)
654{
655 return __BT_UPCAST_CONST(bt_component_class, component_class);
656}
657
681 const bt_component_class_filter *component_class);
682
699 const bt_component_class_filter *component_class);
700
716#define BT_COMPONENT_CLASS_FILTER_PUT_REF_AND_RESET(_component_class) \
717 do { \
718 bt_component_class_filter_put_ref(_component_class); \
719 (_component_class) = NULL; \
720 } while (0)
721
748#define BT_COMPONENT_CLASS_FILTER_MOVE_REF(_dst, _src) \
749 do { \
750 bt_component_class_filter_put_ref(_dst); \
751 (_dst) = (_src); \
752 (_src) = NULL; \
753 } while (0)
754
777static inline
778const bt_component_class *
780 const bt_component_class_sink *component_class)
781{
782 return __BT_UPCAST_CONST(bt_component_class, component_class);
783}
784
808 const bt_component_class_sink *component_class);
809
826 const bt_component_class_sink *component_class);
827
843#define BT_COMPONENT_CLASS_SINK_PUT_REF_AND_RESET(_component_class) \
844 do { \
845 bt_component_class_sink_put_ref(_component_class); \
846 (_component_class) = NULL; \
847 } while (0)
848
875#define BT_COMPONENT_CLASS_SINK_MOVE_REF(_dst, _src) \
876 do { \
877 bt_component_class_sink_put_ref(_dst); \
878 (_dst) = (_src); \
879 (_src) = NULL; \
880 } while (0)
881
886#ifdef __cplusplus
887}
888#endif
889
890#endif /* BABELTRACE2_GRAPH_COMPONENT_CLASS_H */
int bt_bool
Babeltrace&#160;2 boolean type.
Definition types.h:140
const char * bt_component_class_get_description(const bt_component_class *component_class)
Returns the description of the component class component_class.
const char * bt_component_class_get_name(const bt_component_class *component_class)
Returns the name of the component class component_class.
bt_component_class_type
Component class type enumerators.
Definition component-class.h:214
void bt_component_class_sink_get_ref(const bt_component_class_sink *component_class)
Increments the reference count of the sink component class component_class.
struct bt_component_class_sink bt_component_class_sink
Sink component class.
Definition types.h:41
static bt_bool bt_component_class_is_sink(const bt_component_class *component_class)
Returns whether or not the component class component_class is a sink component class.
Definition component-class.h:322
void bt_component_class_source_get_ref(const bt_component_class_source *component_class)
Increments the reference count of the source component class component_class.
bt_component_class_type bt_component_class_get_type(const bt_component_class *component_class)
Returns the type enumerator of the component class component_class.
void bt_component_class_filter_put_ref(const bt_component_class_filter *component_class)
Decrements the reference count of the filter component class component_class.
static const bt_component_class * bt_component_class_source_as_component_class_const(const bt_component_class_source *component_class)
Upcasts the source component class component_class to the common bt_component_class type.
Definition component-class.h:525
void bt_component_class_sink_put_ref(const bt_component_class_sink *component_class)
Decrements the reference count of the sink component class component_class.
void bt_component_class_filter_get_ref(const bt_component_class_filter *component_class)
Increments the reference count of the filter component class component_class.
void bt_component_class_get_ref(const bt_component_class *component_class)
Increments the reference count of the component class component_class.
void bt_component_class_source_put_ref(const bt_component_class_source *component_class)
Decrements the reference count of the source component class component_class.
static const bt_component_class * bt_component_class_sink_as_component_class_const(const bt_component_class_sink *component_class)
Upcasts the sink component class component_class to the common bt_component_class type.
Definition component-class.h:779
struct bt_component_class_source bt_component_class_source
Source component class.
Definition types.h:42
const char * bt_component_class_get_help(const bt_component_class *component_class)
Returns the help text of the component class component_class.
void bt_component_class_put_ref(const bt_component_class *component_class)
Decrements the reference count of the component class component_class.
static bt_bool bt_component_class_is_filter(const bt_component_class *component_class)
Returns whether or not the component class component_class is a filter component class.
Definition component-class.h:298
struct bt_component_class_filter bt_component_class_filter
Filter component class.
Definition types.h:40
static bt_bool bt_component_class_is_source(const bt_component_class *component_class)
Returns whether or not the component class component_class is a source component class.
Definition component-class.h:274
struct bt_component_class bt_component_class
Component class.
Definition types.h:39
static const bt_component_class * bt_component_class_filter_as_component_class_const(const bt_component_class_filter *component_class)
Upcasts the filter component class component_class to the common bt_component_class type.
Definition component-class.h:652
@ BT_COMPONENT_CLASS_TYPE_FILTER
Filter component class.
Definition component-class.h:225
@ BT_COMPONENT_CLASS_TYPE_SOURCE
Source component class.
Definition component-class.h:219
@ BT_COMPONENT_CLASS_TYPE_SINK
Sink component class.
Definition component-class.h:231