X-Git-Url: http://git.efficios.com/?a=blobdiff_plain;f=include%2Fbabeltrace%2Fgraph%2Fcomponent-class-filter-const.h;h=7b11819d3ea31c43b1637925e391564890582185;hb=005f1204d7620018bb2c1406b6194940f0ee119f;hp=9430899eccae7fd2065f2187fdbe602798b5f261;hpb=e2f7325d1e58710ee928373592adcee466f93d06;p=babeltrace.git diff --git a/include/babeltrace/graph/component-class-filter-const.h b/include/babeltrace/graph/component-class-filter-const.h index 9430899e..7b11819d 100644 --- a/include/babeltrace/graph/component-class-filter-const.h +++ b/include/babeltrace/graph/component-class-filter-const.h @@ -24,21 +24,43 @@ * SOFTWARE. */ +/* + * For bt_component_class, bt_component_class_filter, + * __BT_UPCAST_CONST + */ +#include + #ifdef __cplusplus extern "C" { #endif -struct bt_component_class; -struct bt_component_class_filter; - static inline -const struct bt_component_class * +const bt_component_class * bt_component_class_filter_as_component_class_const( - const struct bt_component_class_filter *comp_cls_filter) + const bt_component_class_filter *comp_cls_filter) { - return (const void *) comp_cls_filter; + return __BT_UPCAST_CONST(bt_component_class, comp_cls_filter); } +extern void bt_component_class_filter_get_ref( + const bt_component_class_filter *component_class_filter); + +extern void bt_component_class_filter_put_ref( + const bt_component_class_filter *component_class_filter); + +#define BT_COMPONENT_CLASS_FILTER_PUT_REF_AND_RESET(_var) \ + do { \ + bt_component_class_filter_put_ref(_var); \ + (_var) = NULL; \ + } while (0) + +#define BT_COMPONENT_CLASS_FILTER_MOVE_REF(_var_dst, _var_src) \ + do { \ + bt_component_class_filter_put_ref(_var_dst); \ + (_var_dst) = (_var_src); \ + (_var_src) = NULL; \ + } while (0) + #ifdef __cplusplus } #endif