Babeltrace 2 C API  2.0.3
Open-source trace manipulation framework
 All Functions Variables Typedefs Enumerations Enumerator Modules Pages
packet.h
1 #ifndef BABELTRACE2_TRACE_IR_PACKET_H
2 #define BABELTRACE2_TRACE_IR_PACKET_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 
32 #include <babeltrace2/types.h>
33 
34 #ifdef __cplusplus
35 extern "C" {
36 #endif
37 
164 extern bt_packet *bt_packet_create(const bt_stream *stream);
165 
191 
200  const bt_packet *packet);
201 
227 extern
229 
237 extern
239  const bt_packet *packet);
240 
263 extern void bt_packet_get_ref(const bt_packet *packet);
264 
280 extern void bt_packet_put_ref(const bt_packet *packet);
281 
296 #define BT_PACKET_PUT_REF_AND_RESET(_packet) \
297  do { \
298  bt_packet_put_ref(_packet); \
299  (_packet) = NULL; \
300  } while (0)
301 
327 #define BT_PACKET_MOVE_REF(_dst, _src) \
328  do { \
329  bt_packet_put_ref(_dst); \
330  (_dst) = (_src); \
331  (_src) = NULL; \
332  } while (0)
333 
338 #ifdef __cplusplus
339 }
340 #endif
341 
342 #endif /* BABELTRACE2_TRACE_IR_PACKET_H */
const bt_stream * bt_packet_borrow_stream_const(const bt_packet *packet)
Borrows the stream conceptually containing the packet packet (const version).
void bt_packet_put_ref(const bt_packet *packet)
Decrements the reference count of the packet packet.
struct bt_stream bt_stream
Stream.
Definition: types.h:103
void bt_packet_get_ref(const bt_packet *packet)
Increments the reference count of the packet packet.
bt_packet * bt_packet_create(const bt_stream *stream)
Creates a packet for the stream stream.
struct bt_packet bt_packet
Packet.
Definition: types.h:75
struct bt_field bt_field
Field.
Definition: types.h:53
bt_field * bt_packet_borrow_context_field(bt_packet *packet)
Borrows the context field of the packet packet.
const bt_field * bt_packet_borrow_context_field_const(const bt_packet *packet)
Borrows the context field of the packet packet (const version).
bt_stream * bt_packet_borrow_stream(bt_packet *packet)
Borrows the stream conceptually containing the packet packet.