X-Git-Url: http://git.efficios.com/?a=blobdiff_plain;f=include%2Fbabeltrace%2Fgraph%2Fconnection-const.h;h=137be8d14b96533da8a81e96c0c9c6b5b5465723;hb=b19ff26f04df428047676dd736bd7cc9473906fe;hp=1d93c6459b7751c60e739753ee17821ba8bab6b1;hpb=0d72b8c329ad51d14ab4e83330b38c2c8da69dd4;p=babeltrace.git diff --git a/include/babeltrace/graph/connection-const.h b/include/babeltrace/graph/connection-const.h index 1d93c645..137be8d1 100644 --- a/include/babeltrace/graph/connection-const.h +++ b/include/babeltrace/graph/connection-const.h @@ -2,10 +2,9 @@ #define BABELTRACE_GRAPH_CONNECTION_CONST_H /* + * Copyright 2017-2018 Philippe Proulx * Copyright 2017 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 @@ -25,24 +24,37 @@ * SOFTWARE. */ -/* For bt_bool */ +/* For bt_bool, bt_port_input, bt_port_output, bt_connection */ #include #ifdef __cplusplus extern "C" { #endif -struct bt_port_input; -struct bt_port_output; -struct bt_connection; +extern const bt_port_input *bt_connection_borrow_downstream_port_const( + const bt_connection *connection); + +extern const bt_port_output *bt_connection_borrow_upstream_port_const( + const bt_connection *connection); + +extern bt_bool bt_connection_is_ended(const bt_connection *connection); + +extern void bt_connection_get_ref(const bt_connection *connection); -extern const struct bt_port_input *bt_connection_borrow_downstream_port_const( - const struct bt_connection *connection); +extern void bt_connection_put_ref(const bt_connection *connection); -extern const struct bt_port_output *bt_connection_borrow_upstream_port_const( - const struct bt_connection *connection); +#define BT_CONNECTION_PUT_REF_AND_RESET(_var) \ + do { \ + bt_connection_put_ref(_var); \ + (_var) = NULL; \ + } while (0) -extern bt_bool bt_connection_is_ended(const struct bt_connection *connection); +#define BT_CONNECTION_MOVE_REF(_var_dst, _var_src) \ + do { \ + bt_connection_put_ref(_var_dst); \ + (_var_dst) = (_var_src); \ + (_var_src) = NULL; \ + } while (0) #ifdef __cplusplus }