X-Git-Url: http://git.efficios.com/?a=blobdiff_plain;f=include%2Fbabeltrace%2Fplugin%2Fplugin-set-const.h;h=772c7cbbb60f2eebb1cd43ac372bb10d4b71cdfa;hb=7e69c04f557e46fb50e5a888a3bc3451afbd3b8e;hp=66e0622594795c95d42dec2911d32b3d0e2ff245;hpb=e2f7325d1e58710ee928373592adcee466f93d06;p=babeltrace.git diff --git a/include/babeltrace/plugin/plugin-set-const.h b/include/babeltrace/plugin/plugin-set-const.h index 66e06225..772c7cbb 100644 --- a/include/babeltrace/plugin/plugin-set-const.h +++ b/include/babeltrace/plugin/plugin-set-const.h @@ -26,18 +26,35 @@ #include +/* For bt_plugin, bt_plugin_set */ +#include + #ifdef __cplusplus extern "C" { #endif -struct bt_plugin; -struct bt_plugin_set; - extern uint64_t bt_plugin_set_get_plugin_count( - const struct bt_plugin_set *plugin_set); + const bt_plugin_set *plugin_set); + +extern const bt_plugin *bt_plugin_set_borrow_plugin_by_index_const( + const bt_plugin_set *plugin_set, uint64_t index); + +extern void bt_plugin_set_get_ref(const bt_plugin_set *plugin_set); + +extern void bt_plugin_set_put_ref(const bt_plugin_set *plugin_set); + +#define BT_PLUGIN_SET_PUT_REF_AND_RESET(_var) \ + do { \ + bt_plugin_set_put_ref(_var); \ + (_var) = NULL; \ + } while (0) -extern const struct bt_plugin *bt_plugin_set_borrow_plugin_by_index_const( - const struct bt_plugin_set *plugin_set, uint64_t index); +#define BT_PLUGIN_SET_MOVE_REF(_var_dst, _var_src) \ + do { \ + bt_plugin_set_put_ref(_var_dst); \ + (_var_dst) = (_var_src); \ + (_var_src) = NULL; \ + } while (0) #ifdef __cplusplus }