+ const bt_value *params, void *initialize_method_data);
+
+/*! @} */
+
+/*!
+@name Reference count
+@{
+*/
+
+/*!
+@brief
+ Increments the \ref api-fund-shared-object "reference count" of
+ the component descriptor set \bt_p{component_descriptor_set}.
+
+@param[in] component_descriptor_set
+ @parblock
+ Component descriptor set of which to increment the reference count.
+
+ Can be \c NULL.
+ @endparblock
+
+@sa bt_component_descriptor_set_put_ref() —
+ Decrements the reference count of a component descriptor set.
+*/
+extern void bt_component_descriptor_set_get_ref(
+ const bt_component_descriptor_set *component_descriptor_set);
+
+/*!
+@brief
+ Decrements the \ref api-fund-shared-object "reference count" of
+ the component descriptor set \bt_p{component_descriptor_set}.
+
+@param[in] component_descriptor_set
+ @parblock
+ Component descriptor set of which to decrement the reference count.
+
+ Can be \c NULL.
+ @endparblock
+
+@sa bt_component_descriptor_set_get_ref() —
+ Increments the reference count of a component descriptor set.
+*/
+extern void bt_component_descriptor_set_put_ref(
+ const bt_component_descriptor_set *component_descriptor_set);
+
+/*!
+@brief
+ Decrements the reference count of the component descriptor set
+ \bt_p{_component_descriptor_set}, and then sets
+ \bt_p{_component_descriptor_set} to \c NULL.
+
+@param _component_descriptor_set
+ @parblock
+ Component descriptor set of which to decrement the reference count.
+
+ Can contain \c NULL.
+ @endparblock
+
+@bt_pre_assign_expr{_component_descriptor_set}
+*/
+#define BT_COMPONENT_DESCRIPTOR_SET_PUT_REF_AND_RESET(_component_descriptor_set) \
+ do { \
+ bt_component_descriptor_set_put_ref(_component_descriptor_set); \
+ (_component_descriptor_set) = NULL; \
+ } while (0)
+
+/*!
+@brief
+ Decrements the reference count of the component descriptor set
+ \bt_p{_dst}, sets \bt_p{_dst} to \bt_p{_src}, and then sets
+ \bt_p{_src} to \c NULL.
+
+This macro effectively moves a component descriptor set reference from
+the expression \bt_p{_src} to the expression \bt_p{_dst}, putting the
+existing \bt_p{_dst} reference.
+
+@param _dst
+ @parblock
+ Destination expression.
+
+ Can contain \c NULL.
+ @endparblock
+@param _src
+ @parblock
+ Source expression.
+
+ Can contain \c NULL.
+ @endparblock
+
+@bt_pre_assign_expr{_dst}
+@bt_pre_assign_expr{_src}
+*/
+#define BT_COMPONENT_DESCRIPTOR_SET_MOVE_REF(_dst, _src) \
+ do { \
+ bt_component_descriptor_set_put_ref(_dst); \
+ (_dst) = (_src); \
+ (_src) = NULL; \
+ } while (0)
+
+/*! @} */
+
+/*! @} */