X-Git-Url: http://git.efficios.com/?a=blobdiff_plain;f=include%2Fbabeltrace%2Ftrace-ir%2Fstream-const.h;h=875b9ddfae7b79fd154ba598588ddfc81246c226;hb=0cbc2c3316814e4b4bf3fd3ba3b361b165949e95;hp=7d4f0e366fcfc3a2e73d7d9962d6649480084b42;hpb=40f4ba76dd6f9508ca51b6220eaed57632281a07;p=babeltrace.git diff --git a/include/babeltrace/trace-ir/stream-const.h b/include/babeltrace/trace-ir/stream-const.h index 7d4f0e36..875b9ddf 100644 --- a/include/babeltrace/trace-ir/stream-const.h +++ b/include/babeltrace/trace-ir/stream-const.h @@ -2,10 +2,9 @@ #define BABELTRACE_TRACE_IR_STREAM_CONST_H /* + * Copyright 2017-2018 Philippe Proulx * Copyright 2013, 2014 Jérémie Galarneau * - * Author: Jérémie Galarneau - * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal * in the Software without restriction, including without limitation the rights @@ -28,21 +27,46 @@ * http://www.efficios.com/ctf */ +/* For bt_trace, bt_stream, bt_stream_class */ +#include + #include #ifdef __cplusplus extern "C" { #endif -struct bt_stream; -struct bt_stream_class; +typedef enum bt_stream_status { + BT_STREAM_STATUS_OK = 0, + BT_STREAM_STATUS_NOMEM = -12, +} bt_stream_status; + +extern const bt_stream_class *bt_stream_borrow_class_const( + const bt_stream *stream); + +extern const bt_trace *bt_stream_borrow_trace_const( + const bt_stream *stream); + +extern const char *bt_stream_get_name(const bt_stream *stream); + +extern uint64_t bt_stream_get_id(const bt_stream *stream); + +extern void bt_stream_get_ref(const bt_stream *stream); -extern const struct bt_stream_class *bt_stream_borrow_class_const( - const struct bt_stream *stream); +extern void bt_stream_put_ref(const bt_stream *stream); -extern const char *bt_stream_get_name(const struct bt_stream *stream); +#define BT_STREAM_PUT_REF_AND_RESET(_var) \ + do { \ + bt_stream_put_ref(_var); \ + (_var) = NULL; \ + } while (0) -extern uint64_t bt_stream_get_id(const struct bt_stream *stream); +#define BT_STREAM_MOVE_REF(_var_dst, _var_src) \ + do { \ + bt_stream_put_ref(_var_dst); \ + (_var_dst) = (_var_src); \ + (_var_src) = NULL; \ + } while (0) #ifdef __cplusplus }