X-Git-Url: http://git.efficios.com/?a=blobdiff_plain;f=include%2Fbabeltrace%2Fgraph%2Fcomponent-filter-const.h;h=546761e375d5e0af1cb872afe21682714fda1b6c;hb=8470daa9621083d091cb52af01eb17f35a0978b6;hp=4cc119e146014d39dc9bfa0b3144944811ec091f;hpb=f2b0325d1bd4bc213b08fa42828d6cc86adc6a01;p=babeltrace.git diff --git a/include/babeltrace/graph/component-filter-const.h b/include/babeltrace/graph/component-filter-const.h index 4cc119e1..546761e3 100644 --- a/include/babeltrace/graph/component-filter-const.h +++ b/include/babeltrace/graph/component-filter-const.h @@ -26,43 +26,63 @@ #include +/* + * For bt_component, bt_component_filter, bt_port_input, bt_port_output, + * __BT_UPCAST_CONST + */ +#include + #ifdef __cplusplus extern "C" { #endif -struct bt_component; -struct bt_component_filter; -struct bt_port_input; -struct bt_port_output; - static inline -const struct bt_component *bt_component_filter_as_component_const( - const struct bt_component_filter *component) +const bt_component *bt_component_filter_as_component_const( + const bt_component_filter *component) { - return (const void *) component; + return __BT_UPCAST_CONST(bt_component, component); } extern uint64_t bt_component_filter_get_input_port_count( - const struct bt_component_filter *component); + const bt_component_filter *component); -extern const struct bt_port_input * +extern const bt_port_input * bt_component_filter_borrow_input_port_by_name_const( - const struct bt_component_filter *component, const char *name); + const bt_component_filter *component, const char *name); -extern const struct bt_port_input * +extern const bt_port_input * bt_component_filter_borrow_input_port_by_index_const( - const struct bt_component_filter *component, uint64_t index); + const bt_component_filter *component, uint64_t index); extern uint64_t bt_component_filter_get_output_port_count( - const struct bt_component_filter *component); + const bt_component_filter *component); -extern const struct bt_port_output * +extern const bt_port_output * bt_component_filter_borrow_output_port_by_name_const( - const struct bt_component_filter *component, const char *name); + const bt_component_filter *component, const char *name); -extern const struct bt_port_output * +extern const bt_port_output * bt_component_filter_borrow_output_port_by_index_const( - const struct bt_component_filter *component, uint64_t index); + const bt_component_filter *component, uint64_t index); + +extern void bt_component_filter_get_ref( + const bt_component_filter *component_filter); + +extern void bt_component_filter_put_ref( + const bt_component_filter *component_filter); + +#define BT_COMPONENT_FILTER_PUT_REF_AND_RESET(_var) \ + do { \ + bt_component_filter_put_ref(_var); \ + (_var) = NULL; \ + } while (0) + +#define BT_COMPONENT_FILTER_MOVE_REF(_var_dst, _var_src) \ + do { \ + bt_component_filter_put_ref(_var_dst); \ + (_var_dst) = (_var_src); \ + (_var_src) = NULL; \ + } while (0) #ifdef __cplusplus }