include: add IWYU pragmas in private header files
[babeltrace.git] / include / babeltrace2 / types.h
CommitLineData
c55a9f58 1/*
0235b0db 2 * SPDX-License-Identifier: MIT
c55a9f58 3 *
0235b0db 4 * Copyright (C) 2010-2019 EfficiOS Inc. and Linux Foundation
c55a9f58
PP
5 */
6
0235b0db
MJ
7#ifndef BABELTRACE2_TYPES_H
8#define BABELTRACE2_TYPES_H
9
f38da6ca
SM
10/* IWYU pragma: private, include <babeltrace2/babeltrace.h> */
11
4fa90f32
PP
12#ifndef __BT_IN_BABELTRACE_H
13# error "Please include <babeltrace2/babeltrace.h> instead."
14#endif
15
44c440bc
PP
16#include <stdint.h>
17
c55a9f58
PP
18#ifdef __cplusplus
19extern "C" {
20#endif
21
b19ff26f 22typedef struct bt_clock_class bt_clock_class;
605e1019 23typedef struct bt_clock_snapshot bt_clock_snapshot;
b19ff26f
PP
24typedef struct bt_component bt_component;
25typedef struct bt_component_class bt_component_class;
26typedef struct bt_component_class_filter bt_component_class_filter;
27typedef struct bt_component_class_sink bt_component_class_sink;
28typedef struct bt_component_class_source bt_component_class_source;
55f09f52 29typedef struct bt_component_descriptor_set bt_component_descriptor_set;
b19ff26f 30typedef struct bt_component_filter bt_component_filter;
b19ff26f
PP
31typedef struct bt_component_sink bt_component_sink;
32typedef struct bt_component_source bt_component_source;
33typedef struct bt_connection bt_connection;
45c51519
PP
34typedef struct bt_error bt_error;
35typedef struct bt_error_cause bt_error_cause;
b19ff26f
PP
36typedef struct bt_event bt_event;
37typedef struct bt_event_class bt_event_class;
38typedef struct bt_event_header_field bt_event_header_field;
39typedef struct bt_field bt_field;
40typedef struct bt_field_class bt_field_class;
8f3ccfbc 41typedef struct bt_field_class_enumeration_mapping bt_field_class_enumeration_mapping;
9c08c816 42typedef struct bt_field_class_enumeration_signed_mapping bt_field_class_enumeration_signed_mapping;
9c08c816 43typedef struct bt_field_class_enumeration_unsigned_mapping bt_field_class_enumeration_unsigned_mapping;
b70d57a1 44typedef struct bt_field_class_structure_member bt_field_class_structure_member;
1e6fd1d7 45typedef struct bt_field_class_variant_option bt_field_class_variant_option;
de821fe5
PP
46typedef struct bt_field_class_variant_with_selector_field_integer_signed_option bt_field_class_variant_with_selector_field_integer_signed_option;
47typedef struct bt_field_class_variant_with_selector_field_integer_unsigned_option bt_field_class_variant_with_selector_field_integer_unsigned_option;
b19ff26f 48typedef struct bt_field_path bt_field_path;
66ddcddf 49typedef struct bt_field_path_item bt_field_path_item;
b19ff26f 50typedef struct bt_graph bt_graph;
fb91c0ef
PP
51typedef struct bt_integer_range_set bt_integer_range_set;
52typedef struct bt_integer_range_set_signed bt_integer_range_set_signed;
53typedef struct bt_integer_range_set_unsigned bt_integer_range_set_unsigned;
54typedef struct bt_integer_range_signed bt_integer_range_signed;
55typedef struct bt_integer_range_unsigned bt_integer_range_unsigned;
b70d57a1 56typedef struct bt_interrupter bt_interrupter;
d6e69534
PP
57typedef struct bt_message bt_message;
58typedef struct bt_message_iterator bt_message_iterator;
a3f0c7db 59typedef struct bt_message_iterator_class bt_message_iterator_class;
b19ff26f
PP
60typedef struct bt_object bt_object;
61typedef struct bt_packet bt_packet;
b19ff26f
PP
62typedef struct bt_plugin bt_plugin;
63typedef struct bt_plugin_set bt_plugin_set;
64typedef struct bt_plugin_so_shared_lib_handle bt_plugin_so_shared_lib_handle;
65typedef struct bt_port bt_port;
66typedef struct bt_port_input bt_port_input;
67typedef struct bt_port_output bt_port_output;
d6e69534 68typedef struct bt_port_output_message_iterator bt_port_output_message_iterator;
3c729b9a 69typedef struct bt_private_query_executor bt_private_query_executor;
b19ff26f
PP
70typedef struct bt_query_executor bt_query_executor;
71typedef struct bt_self_component bt_self_component;
553c4bab 72typedef struct bt_self_component_class bt_self_component_class;
b19ff26f
PP
73typedef struct bt_self_component_class_filter bt_self_component_class_filter;
74typedef struct bt_self_component_class_sink bt_self_component_class_sink;
75typedef struct bt_self_component_class_source bt_self_component_class_source;
76typedef struct bt_self_component_filter bt_self_component_filter;
59225a3e 77typedef struct bt_self_component_filter_configuration bt_self_component_filter_configuration;
b19ff26f
PP
78typedef struct bt_self_component_port bt_self_component_port;
79typedef struct bt_self_component_port_input bt_self_component_port_input;
9a2c8b8e 80typedef struct bt_message_iterator bt_message_iterator;
b19ff26f
PP
81typedef struct bt_self_component_port_output bt_self_component_port_output;
82typedef struct bt_self_component_sink bt_self_component_sink;
59225a3e 83typedef struct bt_self_component_sink_configuration bt_self_component_sink_configuration;
b19ff26f 84typedef struct bt_self_component_source bt_self_component_source;
59225a3e 85typedef struct bt_self_component_source_configuration bt_self_component_source_configuration;
d6e69534 86typedef struct bt_self_message_iterator bt_self_message_iterator;
8d8b141d 87typedef struct bt_self_message_iterator_configuration bt_self_message_iterator_configuration;
d24d5663 88typedef struct bt_self_plugin bt_self_plugin;
b19ff26f
PP
89typedef struct bt_stream bt_stream;
90typedef struct bt_stream_class bt_stream_class;
91typedef struct bt_trace bt_trace;
92typedef struct bt_trace_class bt_trace_class;
93typedef struct bt_value bt_value;
94
43c59509
PP
95/*!
96@defgroup api-common-types Common C types
97
98@brief
99 C types common to many parts of the API.
100*/
101
102/*! @{ */
103
104/*!
105@brief
106 \em True value for #bt_bool.
107*/
108#define BT_TRUE 1
109
110/*!
111@brief
112 \em False value for #bt_bool.
113*/
114#define BT_FALSE 0
115
116/*!
117@brief
118 \bt_name boolean type.
119
120The API uses #bt_bool instead of the C99 \c bool type for
121<a href="https://en.wikipedia.org/wiki/Application_binary_interface">application binary interface</a>
122reasons.
123
124Use #BT_TRUE and #BT_FALSE to set and compare #bt_bool variables.
125*/
126typedef int bt_bool;
127
128/*!
129@brief
130 Numeric ID which identifies a user listener function.
131
132Some functions, such as bt_trace_add_destruction_listener(), return a
133listener ID when you add a user listener function to some object. You
134can then use this listener ID to remove the listener from the object.
135*/
136typedef uint64_t bt_listener_id;
137
138/*!
139@brief
140 A
141 <a href="https://en.wikipedia.org/wiki/Universally_unique_identifier">UUID</a>,
142 that is, an array of 16&nbsp;constant bytes.
143*/
144typedef uint8_t const *bt_uuid;
145
146/*!
147@brief
148 Availability of an object's property.
149
150Some getter functions of the API, such as
151bt_event_class_get_log_level(), return, by output parameter, an optional
152object property which is not a pointer. In that case, the function
153either:
154
155- Returns #BT_PROPERTY_AVAILABILITY_AVAILABLE and sets an output
156 parameter to the property's value.
157- Returns #BT_PROPERTY_AVAILABILITY_NOT_AVAILABLE.
158*/
159typedef enum bt_property_availability {
160 /*!
161 @brief
162 Property is available.
163 */
164 BT_PROPERTY_AVAILABILITY_AVAILABLE = 1,
165
166 /*!
167 @brief
168 Property is not available.
169 */
170 BT_PROPERTY_AVAILABILITY_NOT_AVAILABLE = 0,
171} bt_property_availability;
172
173/*!
174@brief
175 Array of constant \bt_p_msg.
176
177Such an array is filled by the
178\link api-msg-iter-cls-meth-next "next" method\endlink of a
179\bt_msg_iter and consumed with bt_message_iterator_next() by another
180message iterator or by a \bt_sink_comp.
181*/
182typedef bt_message const **bt_message_array_const;
b19ff26f 183
43c59509 184/*! @} */
c55a9f58
PP
185
186#ifdef __cplusplus
187}
188#endif
189
924dc299 190#endif /* BABELTRACE2_TYPES_H */
This page took 0.075672 seconds and 4 git commands to generate.