+/*!
+@brief
+ Sets the finalization function of the plugin having the ID
+ \bt_p{_id} to \bt_p{_func}.
+
+@param[in] _id
+ @parblock
+ C identifier.
+
+ ID of the plugin of which to set the finalization function.
+ @endparblock
+@param[in] _func
+ @parblock
+ #bt_plugin_finalize_func
+
+ Plugin's finalization function.
+ @endparblock
+
+@bt_pre_not_null{_func}
+*/
+#define BT_PLUGIN_FINALIZE_FUNC_WITH_ID(_id, _func) \
+ __BT_PLUGIN_DESCRIPTOR_ATTRIBUTE(exit, BT_PLUGIN_DESCRIPTOR_ATTRIBUTE_TYPE_EXIT, _id, _func)
+
+/*!
+@brief
+ Alias of BT_PLUGIN_FINALIZE_FUNC_WITH_ID() with the \bt_p{_id}
+ parameter set to <code>auto</code>.
+*/
+#define BT_PLUGIN_FINALIZE_FUNC(_func) BT_PLUGIN_FINALIZE_FUNC_WITH_ID(auto, _func)
+
+/*! @} */
+
+/*!
+@name Component class adding
+@{
+*/
+
+/*!
+@brief
+ Adds a \bt_src_comp_cls named \bt_p{_name}, having the ID
+ \bt_p{_component_class_id} and the message iterator class's "next"
+ method \bt_p{_message_iterator_class_next_method}, to the plugin
+ having the ID \bt_p{_plugin_id}.
+
+@param[in] _plugin_id
+ @parblock
+ C identifier.
+
+ ID of the plugin to which to add the source component class.
+ @endparblock
+@param[in] _component_class_id
+ @parblock
+ C identifier.
+
+ Source component class's ID, unique amongst all the source component
+ class IDs of the same plugin.
+ @endparblock
+@param[in] _name
+ @parblock
+ <code>const char *</code>
+
+ Source component class's name, unique amongst all the source
+ component class names of the same plugin.
+ @endparblock
+@param[in] _message_iterator_class_next_method
+ @parblock
+ #bt_message_iterator_class_next_method
+
+ Source component class's message iterator class's "next" method.
+ @endparblock
+
+@bt_pre_not_null{_name}
+@bt_pre_not_null{_message_iterator_class_next_method}
+*/
+#define BT_PLUGIN_SOURCE_COMPONENT_CLASS_WITH_ID(_plugin_id, _component_class_id, _name, _message_iterator_class_next_method) \
+ static struct __bt_plugin_component_class_descriptor __bt_plugin_source_component_class_descriptor_##_plugin_id##_##_component_class_id = { \
+ .plugin_descriptor = &__bt_plugin_descriptor_##_plugin_id, \
+ .name = _name, \
+ .type = BT_COMPONENT_CLASS_TYPE_SOURCE, \
+ .methods = { .source = { .msg_iter_next = _message_iterator_class_next_method } }, \
+ }; \
+ static struct __bt_plugin_component_class_descriptor const * const __bt_plugin_source_component_class_descriptor_##_plugin_id##_##_component_class_id##_ptr __BT_PLUGIN_COMPONENT_CLASS_DESCRIPTOR_ATTRS = &__bt_plugin_source_component_class_descriptor_##_plugin_id##_##_component_class_id
+
+/*!
+@brief
+ Alias of BT_PLUGIN_SOURCE_COMPONENT_CLASS_WITH_ID() with the
+ \bt_p{_plugin_id} parameter set to <code>auto</code>, the
+ \bt_p{_component_class_id} parameter set to \bt_p{_name}, and
+ the \bt_p{_name} parameter set to a string version of \bt_p{_name}.
+
+@param[in] _name
+ @parblock
+ C identifier
+
+ Passed as both the \bt_p{_component_class_id} and the
+ \bt_p{_name} (once converted to a string) parameters of
+ BT_PLUGIN_SOURCE_COMPONENT_CLASS_WITH_ID().
+ @endparblock
+*/
+#define BT_PLUGIN_SOURCE_COMPONENT_CLASS(_name, _message_iterator_class_next_method) \
+ BT_PLUGIN_SOURCE_COMPONENT_CLASS_WITH_ID(auto, _name, #_name, _message_iterator_class_next_method)
+
+/*!
+@brief
+ Adds a \bt_flt_comp_cls named \bt_p{_name}, having the ID
+ \bt_p{_component_class_id} and the message iterator class's "next"
+ method \bt_p{_message_iterator_class_next_method}, to the plugin
+ having the ID \bt_p{_plugin_id}.
+
+@param[in] _plugin_id
+ @parblock
+ C identifier.
+
+ ID of the plugin to which to add the filter component class.
+ @endparblock
+@param[in] _component_class_id
+ @parblock
+ C identifier.
+
+ Filter component class's ID, unique amongst all the filter component
+ class IDs of the same plugin.
+ @endparblock
+@param[in] _name
+ @parblock
+ <code>const char *</code>
+
+ Filter component class's name, unique amongst all the filter
+ component class names of the same plugin.
+ @endparblock
+@param[in] _message_iterator_class_next_method
+ @parblock
+ #bt_message_iterator_class_next_method
+
+ Filter component class's message iterator class's "next" method.
+ @endparblock
+
+@bt_pre_not_null{_name}
+@bt_pre_not_null{_message_iterator_class_next_method}
+*/
+#define BT_PLUGIN_FILTER_COMPONENT_CLASS_WITH_ID(_plugin_id, _component_class_id, _name, _message_iterator_class_next_method) \
+ static struct __bt_plugin_component_class_descriptor __bt_plugin_filter_component_class_descriptor_##_plugin_id##_##_component_class_id = { \
+ .plugin_descriptor = &__bt_plugin_descriptor_##_plugin_id, \
+ .name = _name, \
+ .type = BT_COMPONENT_CLASS_TYPE_FILTER, \
+ .methods = { .filter = { .msg_iter_next = _message_iterator_class_next_method } }, \
+ }; \
+ static struct __bt_plugin_component_class_descriptor const * const __bt_plugin_filter_component_class_descriptor_##_plugin_id##_##_component_class_id##_ptr __BT_PLUGIN_COMPONENT_CLASS_DESCRIPTOR_ATTRS = &__bt_plugin_filter_component_class_descriptor_##_plugin_id##_##_component_class_id
+
+/*!
+@brief
+ Alias of BT_PLUGIN_FILTER_COMPONENT_CLASS_WITH_ID() with the
+ \bt_p{_plugin_id} parameter set to <code>auto</code>, the
+ \bt_p{_component_class_id} parameter set to \bt_p{_name}, and
+ the \bt_p{_name} parameter set to a string version of \bt_p{_name}.
+
+@param[in] _name
+ @parblock
+ C identifier
+
+ Passed as both the \bt_p{_component_class_id} and the
+ \bt_p{_name} (once converted to a string) parameters of
+ BT_PLUGIN_FILTER_COMPONENT_CLASS_WITH_ID().
+ @endparblock
+*/
+#define BT_PLUGIN_FILTER_COMPONENT_CLASS(_name, _message_iterator_class_next_method) \
+ BT_PLUGIN_FILTER_COMPONENT_CLASS_WITH_ID(auto, _name, #_name, _message_iterator_class_next_method)
+
+/*!
+@brief
+ Adds a \bt_sink_comp_cls named \bt_p{_name}, having the ID
+ \bt_p{_component_class_id} and the consuming method
+ \bt_p{_consume_method}, to the plugin
+ having the ID \bt_p{_plugin_id}.
+
+@param[in] _plugin_id
+ @parblock
+ C identifier.
+
+ ID of the plugin to which to add the sink component class.
+ @endparblock
+@param[in] _component_class_id
+ @parblock
+ C identifier.
+
+ Sink component class's ID, unique amongst all the sink component
+ class IDs of the same plugin.
+ @endparblock
+@param[in] _name
+ @parblock
+ <code>const char *</code>
+
+ Sink component class's name, unique amongst all the sink
+ component class names of the same plugin.
+ @endparblock
+@param[in] _consume_method
+ @parblock
+ #bt_component_class_sink_consume_method
+
+ Sink component class's message iterator class's "next" method.
+ @endparblock
+
+@bt_pre_not_null{_name}
+@bt_pre_not_null{_consume_method}
+*/
+#define BT_PLUGIN_SINK_COMPONENT_CLASS_WITH_ID(_plugin_id, _component_class_id, _name, _consume_method) \
+ static struct __bt_plugin_component_class_descriptor __bt_plugin_sink_component_class_descriptor_##_plugin_id##_##_component_class_id = { \
+ .plugin_descriptor = &__bt_plugin_descriptor_##_plugin_id, \
+ .name = _name, \
+ .type = BT_COMPONENT_CLASS_TYPE_SINK, \
+ .methods = { .sink = { .consume = _consume_method } }, \
+ }; \
+ static struct __bt_plugin_component_class_descriptor const * const __bt_plugin_sink_component_class_descriptor_##_plugin_id##_##_component_class_id##_ptr __BT_PLUGIN_COMPONENT_CLASS_DESCRIPTOR_ATTRS = &__bt_plugin_sink_component_class_descriptor_##_plugin_id##_##_component_class_id
+
+/*!
+@brief
+ Alias of BT_PLUGIN_SINK_COMPONENT_CLASS_WITH_ID() with the
+ \bt_p{_plugin_id} parameter set to <code>auto</code>, the
+ \bt_p{_component_class_id} parameter set to \bt_p{_name}, and
+ the \bt_p{_name} parameter set to a string version of \bt_p{_name}.
+
+@param[in] _name
+ @parblock
+ C identifier
+
+ Passed as both the \bt_p{_component_class_id} and the
+ \bt_p{_name} (once converted to a string) parameters of
+ BT_PLUGIN_SINK_COMPONENT_CLASS_WITH_ID().
+ @endparblock
+*/
+#define BT_PLUGIN_SINK_COMPONENT_CLASS(_name, _consume_method) \
+ BT_PLUGIN_SINK_COMPONENT_CLASS_WITH_ID(auto, _name, #_name, _consume_method)
+
+/*! @} */
+
+/*!
+@name Source component class properties
+@{
+*/
+
+/*!
+@brief
+ Sets the description of the \bt_src_comp_cls having the ID
+ \bt_p{_component_class_id} in the plugin having the ID
+ \bt_p{_plugin_id} to \bt_p{_description}.
+
+See the \ref api-comp-cls-prop-descr "description" property.
+
+@param[in] _plugin_id
+ @parblock
+ C identifier.
+
+ ID of the plugin which contains the source component class of which
+ to set the description.
+ @endparblock
+@param[in] _component_class_id
+ @parblock
+ C identifier.
+
+ ID of the source component class, within the plugin having the ID
+ \bt_p{_plugin_id}, of which to set the description to
+ \bt_p{_description}.
+ @endparblock
+@param[in] _description
+ @parblock
+ <code>const char *</code>
+
+ Source component class's description.
+ @endparblock
+
+@bt_pre_not_null{_description}
+*/
+#define BT_PLUGIN_SOURCE_COMPONENT_CLASS_DESCRIPTION_WITH_ID(_plugin_id, _component_class_id, _description) \
+ __BT_PLUGIN_COMPONENT_CLASS_DESCRIPTOR_ATTRIBUTE(description, BT_PLUGIN_COMPONENT_CLASS_DESCRIPTOR_ATTRIBUTE_TYPE_DESCRIPTION, _plugin_id, _component_class_id, source, _description)
+
+/*!
+@brief
+ Alias of BT_PLUGIN_SOURCE_COMPONENT_CLASS_DESCRIPTION_WITH_ID() with
+ the \bt_p{_plugin_id} parameter set to <code>auto</code> and the
+ \bt_p{_component_class_id} parameter set to \bt_p{_name}.
+*/
+#define BT_PLUGIN_SOURCE_COMPONENT_CLASS_DESCRIPTION(_name, _description) \
+ BT_PLUGIN_SOURCE_COMPONENT_CLASS_DESCRIPTION_WITH_ID(auto, _name, _description)
+
+/*!
+@brief
+ Sets the help text of the \bt_src_comp_cls having the ID
+ \bt_p{_component_class_id} in the plugin having the ID
+ \bt_p{_plugin_id} to \bt_p{_help_text}.
+
+See the \ref api-comp-cls-prop-help "help text" property.
+
+@param[in] _plugin_id
+ @parblock
+ C identifier.
+
+ ID of the plugin which contains the source component class of which
+ to set the help text.
+ @endparblock
+@param[in] _component_class_id
+ @parblock
+ C identifier.
+
+ ID of the source component class, within the plugin having the ID
+ \bt_p{_plugin_id}, of which to set the help text to
+ \bt_p{_help_text}.
+ @endparblock
+@param[in] _help_text
+ @parblock
+ <code>const char *</code>
+
+ Source component class's help text.
+ @endparblock
+
+@bt_pre_not_null{_help_text}
+*/
+#define BT_PLUGIN_SOURCE_COMPONENT_CLASS_HELP_WITH_ID(_plugin_id, _component_class_id, _help_text) \
+ __BT_PLUGIN_COMPONENT_CLASS_DESCRIPTOR_ATTRIBUTE(help, BT_PLUGIN_COMPONENT_CLASS_DESCRIPTOR_ATTRIBUTE_TYPE_HELP, _plugin_id, _component_class_id, source, _help_text)
+
+/*!
+@brief
+ Alias of BT_PLUGIN_SOURCE_COMPONENT_CLASS_HELP_WITH_ID() with the
+ \bt_p{_plugin_id} parameter set to <code>auto</code> and the
+ \bt_p{_component_class_id} parameter set to \bt_p{_name}.
+*/
+#define BT_PLUGIN_SOURCE_COMPONENT_CLASS_HELP(_name, _help_text) \
+ BT_PLUGIN_SOURCE_COMPONENT_CLASS_HELP_WITH_ID(auto, _name, _help_text)
+
+/*! @} */
+
+/*!
+@name Filter component class properties
+@{
+*/
+
+/*!
+@brief
+ Sets the description of the \bt_flt_comp_cls having the ID
+ \bt_p{_component_class_id} in the plugin having the ID
+ \bt_p{_plugin_id} to \bt_p{_description}.
+
+See the \ref api-comp-cls-prop-descr "description" property.
+
+@param[in] _plugin_id
+ @parblock
+ C identifier.
+
+ ID of the plugin which contains the filter component class of which
+ to set the description.
+ @endparblock
+@param[in] _component_class_id
+ @parblock
+ C identifier.
+
+ ID of the filter component class, within the plugin having the ID
+ \bt_p{_plugin_id}, of which to set the description to
+ \bt_p{_description}.
+ @endparblock
+@param[in] _description
+ @parblock
+ <code>const char *</code>
+
+ Filter component class's description.
+ @endparblock
+
+@bt_pre_not_null{_description}
+*/
+#define BT_PLUGIN_FILTER_COMPONENT_CLASS_DESCRIPTION_WITH_ID(_plugin_id, _component_class_id, _description) \
+ __BT_PLUGIN_COMPONENT_CLASS_DESCRIPTOR_ATTRIBUTE(description, BT_PLUGIN_COMPONENT_CLASS_DESCRIPTOR_ATTRIBUTE_TYPE_DESCRIPTION, _plugin_id, _component_class_id, filter, _description)
+
+/*!
+@brief
+ Alias of BT_PLUGIN_FILTER_COMPONENT_CLASS_DESCRIPTION_WITH_ID() with
+ the \bt_p{_plugin_id} parameter set to <code>auto</code> and the
+ \bt_p{_component_class_id} parameter set to \bt_p{_name}.
+*/
+#define BT_PLUGIN_FILTER_COMPONENT_CLASS_DESCRIPTION(_name, _description) \
+ BT_PLUGIN_FILTER_COMPONENT_CLASS_DESCRIPTION_WITH_ID(auto, _name, _description)
+
+/*!
+@brief
+ Sets the help text of the \bt_flt_comp_cls having the ID
+ \bt_p{_component_class_id} in the plugin having the ID
+ \bt_p{_plugin_id} to \bt_p{_help_text}.
+
+See the \ref api-comp-cls-prop-help "help text" property.
+
+@param[in] _plugin_id
+ @parblock
+ C identifier.
+
+ ID of the plugin which contains the filter component class of which
+ to set the help text.
+ @endparblock
+@param[in] _component_class_id
+ @parblock
+ C identifier.
+
+ ID of the filter component class, within the plugin having the ID
+ \bt_p{_plugin_id}, of which to set the help text to
+ \bt_p{_help_text}.
+ @endparblock
+@param[in] _help_text
+ @parblock
+ <code>const char *</code>
+
+ Filter component class's help text.
+ @endparblock
+
+@bt_pre_not_null{_help_text}
+*/
+#define BT_PLUGIN_FILTER_COMPONENT_CLASS_HELP_WITH_ID(_plugin_id, _component_class_id, _help_text) \
+ __BT_PLUGIN_COMPONENT_CLASS_DESCRIPTOR_ATTRIBUTE(help, BT_PLUGIN_COMPONENT_CLASS_DESCRIPTOR_ATTRIBUTE_TYPE_HELP, _plugin_id, _component_class_id, filter, _help_text)
+
+/*!
+@brief
+ Alias of BT_PLUGIN_FILTER_COMPONENT_CLASS_HELP_WITH_ID() with the
+ \bt_p{_plugin_id} parameter set to <code>auto</code> and the
+ \bt_p{_component_class_id} parameter set to \bt_p{_name}.
+*/
+#define BT_PLUGIN_FILTER_COMPONENT_CLASS_HELP(_name, _help_text) \
+ BT_PLUGIN_FILTER_COMPONENT_CLASS_HELP_WITH_ID(auto, _name, _help_text)
+
+/*! @} */
+
+/*!
+@name Sink component class properties
+@{
+*/
+
+/*!
+@brief
+ Sets the description of the \bt_sink_comp_cls having the ID
+ \bt_p{_component_class_id} in the plugin having the ID
+ \bt_p{_plugin_id} to \bt_p{_description}.
+
+See the \ref api-comp-cls-prop-descr "description" property.
+
+@param[in] _plugin_id
+ @parblock
+ C identifier.
+
+ ID of the plugin which contains the sink component class of which
+ to set the description.
+ @endparblock
+@param[in] _component_class_id
+ @parblock
+ C identifier.
+
+ ID of the sink component class, within the plugin having the ID
+ \bt_p{_plugin_id}, of which to set the description to
+ \bt_p{_description}.
+ @endparblock
+@param[in] _description
+ @parblock
+ <code>const char *</code>
+
+ Sink component class's description.
+ @endparblock
+
+@bt_pre_not_null{_description}
+*/
+#define BT_PLUGIN_SINK_COMPONENT_CLASS_DESCRIPTION_WITH_ID(_plugin_id, _component_class_id, _description) \
+ __BT_PLUGIN_COMPONENT_CLASS_DESCRIPTOR_ATTRIBUTE(description, BT_PLUGIN_COMPONENT_CLASS_DESCRIPTOR_ATTRIBUTE_TYPE_DESCRIPTION, _plugin_id, _component_class_id, sink, _description)
+
+/*!
+@brief
+ Alias of BT_PLUGIN_SINK_COMPONENT_CLASS_DESCRIPTION_WITH_ID() with
+ the \bt_p{_plugin_id} parameter set to <code>auto</code> and the
+ \bt_p{_component_class_id} parameter set to \bt_p{_name}.
+*/
+#define BT_PLUGIN_SINK_COMPONENT_CLASS_DESCRIPTION(_name, _description) \
+ BT_PLUGIN_SINK_COMPONENT_CLASS_DESCRIPTION_WITH_ID(auto, _name, _description)
+
+/*!
+@brief
+ Sets the help text of the \bt_sink_comp_cls having the ID
+ \bt_p{_component_class_id} in the plugin having the ID
+ \bt_p{_plugin_id} to \bt_p{_help_text}.
+
+See the \ref api-comp-cls-prop-help "help text" property.
+
+@param[in] _plugin_id
+ @parblock
+ C identifier.
+
+ ID of the plugin which contains the sink component class of which
+ to set the help text.
+ @endparblock
+@param[in] _component_class_id
+ @parblock
+ C identifier.
+
+ ID of the sink component class, within the plugin having the ID
+ \bt_p{_plugin_id}, of which to set the help text to
+ \bt_p{_help_text}.
+ @endparblock
+@param[in] _help_text
+ @parblock
+ <code>const char *</code>
+
+ Sink component class's help text.
+ @endparblock
+
+@bt_pre_not_null{_help_text}
+*/
+#define BT_PLUGIN_SINK_COMPONENT_CLASS_HELP_WITH_ID(_plugin_id, _component_class_id, _help_text) \
+ __BT_PLUGIN_COMPONENT_CLASS_DESCRIPTOR_ATTRIBUTE(help, BT_PLUGIN_COMPONENT_CLASS_DESCRIPTOR_ATTRIBUTE_TYPE_HELP, _plugin_id, _component_class_id, sink, _help_text)
+
+/*!
+@brief
+ Alias of BT_PLUGIN_SINK_COMPONENT_CLASS_HELP_WITH_ID() with
+ the \bt_p{_plugin_id} parameter set to <code>auto</code> and the
+ \bt_p{_component_class_id} parameter set to \bt_p{_name}.
+*/
+#define BT_PLUGIN_SINK_COMPONENT_CLASS_HELP(_name, _help_text) \
+ BT_PLUGIN_SINK_COMPONENT_CLASS_HELP_WITH_ID(auto, _name, _help_text)
+
+/*! @} */
+
+/*!
+@name Source component class methods
+@{
+*/
+
+/*!
+@brief
+ Sets the finalization method of the \bt_src_comp_cls having the ID
+ \bt_p{_component_class_id} in the plugin having the ID
+ \bt_p{_plugin_id} to \bt_p{_method}.
+
+See the \ref api-comp-cls-dev-meth-fini "finalize" method.
+
+@param[in] _plugin_id
+ @parblock
+ C identifier.
+
+ ID of the plugin which contains the source component class of which
+ to set the finalization method.
+ @endparblock
+@param[in] _component_class_id
+ @parblock
+ C identifier.
+
+ ID of the source component class, within the plugin having the ID
+ \bt_p{_plugin_id}, of which to set the finalization method to
+ \bt_p{_method}.
+ @endparblock
+@param[in] _method
+ @parblock
+ #bt_component_class_source_finalize_method
+
+ Source component class's finalization method.
+ @endparblock
+
+@bt_pre_not_null{_method}
+*/
+#define BT_PLUGIN_SOURCE_COMPONENT_CLASS_FINALIZE_METHOD_WITH_ID(_plugin_id, _component_class_id, _method) \
+ __BT_PLUGIN_COMPONENT_CLASS_DESCRIPTOR_ATTRIBUTE(source_finalize_method, BT_PLUGIN_COMPONENT_CLASS_DESCRIPTOR_ATTRIBUTE_TYPE_FINALIZE_METHOD, _plugin_id, _component_class_id, source, _method)
+
+/*!
+@brief
+ Alias of
+ BT_PLUGIN_SOURCE_COMPONENT_CLASS_FINALIZE_METHOD_WITH_ID()
+ with the \bt_p{_plugin_id} parameter set to <code>auto</code> and
+ the \bt_p{_component_class_id} parameter set to \bt_p{_name}.
+*/
+#define BT_PLUGIN_SOURCE_COMPONENT_CLASS_FINALIZE_METHOD(_name, _method) \
+ BT_PLUGIN_SOURCE_COMPONENT_CLASS_FINALIZE_METHOD_WITH_ID(auto, _name, _method)
+
+/*!
+@brief
+ Sets the \"get supported \bt_mip versions\" method of the
+ \bt_src_comp_cls having the ID \bt_p{_component_class_id} in the
+ plugin having the ID \bt_p{_plugin_id} to \bt_p{_method}.
+
+See the \ref api-comp-cls-dev-meth-mip "get supported MIP versions"
+method.
+
+@param[in] _plugin_id
+ @parblock
+ C identifier.
+
+ ID of the plugin which contains the source component class of which
+ to set the "get supported MIP versions" method.
+ @endparblock
+@param[in] _component_class_id
+ @parblock
+ C identifier.
+
+ ID of the source component class, within the plugin having the ID
+ \bt_p{_plugin_id}, of which to set the "get supported MIP versions"
+ method to \bt_p{_method}.
+ @endparblock
+@param[in] _method
+ @parblock
+ #bt_component_class_source_get_supported_mip_versions_method
+
+ Source component class's "get supported MIP versions" method.
+ @endparblock
+
+@bt_pre_not_null{_method}
+*/
+#define BT_PLUGIN_SOURCE_COMPONENT_CLASS_GET_SUPPORTED_MIP_VERSIONS_METHOD_WITH_ID(_plugin_id, _component_class_id, _method) \
+ __BT_PLUGIN_COMPONENT_CLASS_DESCRIPTOR_ATTRIBUTE(source_get_supported_mip_versions_method, BT_PLUGIN_COMPONENT_CLASS_DESCRIPTOR_ATTRIBUTE_TYPE_GET_SUPPORTED_MIP_VERSIONS, _plugin_id, _component_class_id, source, _method)
+
+/*!
+@brief
+ Alias of
+ BT_PLUGIN_SOURCE_COMPONENT_CLASS_GET_SUPPORTED_MIP_VERSIONS_METHOD_WITH_ID()
+ with the \bt_p{_plugin_id} parameter set to <code>auto</code> and
+ the \bt_p{_component_class_id} parameter set to \bt_p{_name}.
+*/
+#define BT_PLUGIN_SOURCE_COMPONENT_CLASS_GET_SUPPORTED_MIP_VERSIONS_METHOD(_name, _method) \
+ BT_PLUGIN_SOURCE_COMPONENT_CLASS_GET_SUPPORTED_MIP_VERSIONS_METHOD_WITH_ID(auto, _name, _method)
+
+/*!
+@brief
+ Sets the initialization method of the \bt_src_comp_cls having the ID
+ \bt_p{_component_class_id} in the plugin having the ID
+ \bt_p{_plugin_id} to \bt_p{_method}.
+
+See the \ref api-comp-cls-dev-meth-init "initialize" method.
+
+@param[in] _plugin_id
+ @parblock
+ C identifier.
+
+ ID of the plugin which contains the source component class of which
+ to set the initialization method.
+ @endparblock
+@param[in] _component_class_id
+ @parblock
+ C identifier.
+
+ ID of the source component class, within the plugin having the ID
+ \bt_p{_plugin_id}, of which to set the initialization method to
+ \bt_p{_method}.
+ @endparblock
+@param[in] _method
+ @parblock
+ #bt_component_class_source_initialize_method
+
+ Source component class's initialization method.
+ @endparblock
+
+@bt_pre_not_null{_method}
+*/
+#define BT_PLUGIN_SOURCE_COMPONENT_CLASS_INITIALIZE_METHOD_WITH_ID(_plugin_id, _component_class_id, _method) \
+ __BT_PLUGIN_COMPONENT_CLASS_DESCRIPTOR_ATTRIBUTE(source_initialize_method, BT_PLUGIN_COMPONENT_CLASS_DESCRIPTOR_ATTRIBUTE_TYPE_INITIALIZE_METHOD, _plugin_id, _component_class_id, source, _method)
+
+/*!
+@brief
+ Alias of
+ BT_PLUGIN_SOURCE_COMPONENT_CLASS_INITIALIZE_METHOD_WITH_ID()
+ with the \bt_p{_plugin_id} parameter set to <code>auto</code> and
+ the \bt_p{_component_class_id} parameter set to \bt_p{_name}.
+*/
+#define BT_PLUGIN_SOURCE_COMPONENT_CLASS_INITIALIZE_METHOD(_name, _method) \
+ BT_PLUGIN_SOURCE_COMPONENT_CLASS_INITIALIZE_METHOD_WITH_ID(auto, _name, _method)
+
+/*!
+@brief
+ Sets the finalization method of the \bt_msg_iter_cls of the
+ \bt_src_comp_cls having the ID \bt_p{_component_class_id} in the
+ plugin having the ID \bt_p{_plugin_id} to \bt_p{_method}.
+
+See the \ref api-msg-iter-cls-meth-fini "finalize" method.
+
+@param[in] _plugin_id
+ @parblock
+ C identifier.
+
+ ID of the plugin which contains the source component class of which
+ to set the finalization method of the message iterator class.
+ @endparblock
+@param[in] _component_class_id
+ @parblock
+ C identifier.
+
+ ID of the source component class, within the plugin having the ID
+ \bt_p{_plugin_id}, of which to set the finalization method of the
+ message iterator class to \bt_p{_method}.
+ @endparblock
+@param[in] _method
+ @parblock
+ #bt_message_iterator_class_finalize_method
+
+ Source component class's message iterator class's finalization method.
+ @endparblock
+
+@bt_pre_not_null{_method}
+*/
+#define BT_PLUGIN_SOURCE_COMPONENT_CLASS_MESSAGE_ITERATOR_CLASS_FINALIZE_METHOD_WITH_ID(_plugin_id, _component_class_id, _method) \
+ __BT_PLUGIN_COMPONENT_CLASS_DESCRIPTOR_ATTRIBUTE(msg_iter_finalize_method, BT_PLUGIN_COMPONENT_CLASS_DESCRIPTOR_ATTRIBUTE_TYPE_MSG_ITER_FINALIZE_METHOD, _plugin_id, _component_class_id, source, _method)
+
+/*!
+@brief
+ Alias of
+ BT_PLUGIN_SOURCE_COMPONENT_CLASS_MESSAGE_ITERATOR_CLASS_FINALIZE_METHOD_WITH_ID()
+ with the \bt_p{_plugin_id} parameter set to <code>auto</code> and
+ the \bt_p{_component_class_id} parameter set to \bt_p{_name}.
+*/
+#define BT_PLUGIN_SOURCE_COMPONENT_CLASS_MESSAGE_ITERATOR_CLASS_FINALIZE_METHOD(_name, _method) \
+ BT_PLUGIN_SOURCE_COMPONENT_CLASS_MESSAGE_ITERATOR_CLASS_FINALIZE_METHOD_WITH_ID(auto, _name, _method)
+
+/*!
+@brief
+ Sets the initialization method of the \bt_msg_iter_cls of the
+ \bt_src_comp_cls having the ID \bt_p{_component_class_id} in the
+ plugin having the ID \bt_p{_plugin_id} to \bt_p{_method}.
+
+See the \ref api-msg-iter-cls-meth-init "initialize" method.
+
+@param[in] _plugin_id
+ @parblock
+ C identifier.
+
+ ID of the plugin which contains the source component class of which
+ to set the initialization method of the message iterator class.
+ @endparblock
+@param[in] _component_class_id
+ @parblock
+ C identifier.
+
+ ID of the source component class, within the plugin having the ID
+ \bt_p{_plugin_id}, of which to set the initialization method of the
+ message iterator class to \bt_p{_method}.
+ @endparblock
+@param[in] _method
+ @parblock
+ #bt_message_iterator_class_initialize_method
+
+ Source component class's message iterator class's initialization
+ method.
+ @endparblock
+
+@bt_pre_not_null{_method}
+*/
+#define BT_PLUGIN_SOURCE_COMPONENT_CLASS_MESSAGE_ITERATOR_CLASS_INITIALIZE_METHOD_WITH_ID(_plugin_id, _component_class_id, _method) \
+ __BT_PLUGIN_COMPONENT_CLASS_DESCRIPTOR_ATTRIBUTE(msg_iter_initialize_method, BT_PLUGIN_COMPONENT_CLASS_DESCRIPTOR_ATTRIBUTE_TYPE_MSG_ITER_INITIALIZE_METHOD, _plugin_id, _component_class_id, source, _method)
+
+/*!
+@brief
+ Alias of
+ BT_PLUGIN_SOURCE_COMPONENT_CLASS_MESSAGE_ITERATOR_CLASS_INITIALIZE_METHOD_WITH_ID()
+ with the \bt_p{_plugin_id} parameter set to <code>auto</code> and
+ the \bt_p{_component_class_id} parameter set to \bt_p{_name}.
+*/
+#define BT_PLUGIN_SOURCE_COMPONENT_CLASS_MESSAGE_ITERATOR_CLASS_INITIALIZE_METHOD(_name, _method) \
+ BT_PLUGIN_SOURCE_COMPONENT_CLASS_MESSAGE_ITERATOR_CLASS_INITIALIZE_METHOD_WITH_ID(auto, _name, _method)
+
+/*!
+@brief
+ Sets the "seek beginning" and "can seek beginning?" methods of the
+ \bt_msg_iter_cls of the \bt_src_comp_cls having the ID
+ \bt_p{_component_class_id} in the plugin having the ID
+ \bt_p{_plugin_id} to \bt_p{_seek_method} and
+ \bt_p{_can_seek_method}.
+
+See the \ref api-msg-iter-cls-meth-seek-beg "seek beginning" and
+\ref api-msg-iter-cls-meth-can-seek-beg "can seek beginning?" methods.
+
+@param[in] _plugin_id
+ @parblock
+ C identifier.
+
+ ID of the plugin which contains the source component class of which
+ to set the "seek beginning" and "can seek beginning?" methods of the
+ message iterator class.
+ @endparblock
+@param[in] _component_class_id
+ @parblock
+ C identifier.
+
+ ID of the source component class, within the plugin having the ID
+ \bt_p{_plugin_id}, of which to set the "seek beginning" and "can
+ seek beginning" methods of the message iterator class to
+ \bt_p{_seek_method} and \bt_p{_can_seek_method}.
+ @endparblock
+@param[in] _seek_method
+ @parblock
+ #bt_message_iterator_class_seek_beginning_method
+
+ Source component class's message iterator class's "seek beginning"
+ method.
+ @endparblock
+@param[in] _can_seek_method
+ @parblock
+ #bt_message_iterator_class_can_seek_beginning_method
+
+ Source component class's message iterator class's
+ "can seek beginning?" method.
+
+ Can be \c NULL, in which case it is equivalent to setting a method
+ which always returns #BT_TRUE.
+ @endparblock
+
+@bt_pre_not_null{_seek_method}
+@bt_pre_not_null{_can_seek_method}
+*/
+#define BT_PLUGIN_SOURCE_COMPONENT_CLASS_MESSAGE_ITERATOR_CLASS_SEEK_BEGINNING_METHODS_WITH_ID(_plugin_id, _component_class_id, _seek_method, _can_seek_method) \
+ __BT_PLUGIN_COMPONENT_CLASS_DESCRIPTOR_ATTRIBUTE(msg_iter_seek_beginning_method, BT_PLUGIN_COMPONENT_CLASS_DESCRIPTOR_ATTRIBUTE_TYPE_MSG_ITER_SEEK_BEGINNING_METHOD, _plugin_id, _component_class_id, source, _seek_method); \
+ __BT_PLUGIN_COMPONENT_CLASS_DESCRIPTOR_ATTRIBUTE(msg_iter_can_seek_beginning_method, BT_PLUGIN_COMPONENT_CLASS_DESCRIPTOR_ATTRIBUTE_TYPE_MSG_ITER_CAN_SEEK_BEGINNING_METHOD, _plugin_id, _component_class_id, source, _can_seek_method)
+
+/*!
+@brief
+ Alias of
+ BT_PLUGIN_SOURCE_COMPONENT_CLASS_MESSAGE_ITERATOR_CLASS_SEEK_BEGINNING_METHODS()
+ with the \bt_p{_plugin_id} parameter set to <code>auto</code> and
+ the \bt_p{_component_class_id} parameter set to \bt_p{_name}.
+*/
+#define BT_PLUGIN_SOURCE_COMPONENT_CLASS_MESSAGE_ITERATOR_CLASS_SEEK_BEGINNING_METHODS(_name, _seek_method, _can_seek_method) \
+ BT_PLUGIN_SOURCE_COMPONENT_CLASS_MESSAGE_ITERATOR_CLASS_SEEK_BEGINNING_METHODS_WITH_ID(auto, _name, _seek_method, _can_seek_method)
+
+/*!
+@brief
+ Sets the "seek ns from origin" and "can seek ns from origin?"
+ methods of the \bt_msg_iter_cls of the \bt_src_comp_cls having the
+ ID \bt_p{_component_class_id} in the plugin having the ID
+ \bt_p{_plugin_id} to \bt_p{_seek_method} and
+ \bt_p{_can_seek_method}.
+
+See the \ref api-msg-iter-cls-meth-seek-ns "seek ns from origin" and
+\ref api-msg-iter-cls-meth-can-seek-ns "can seek ns from origin?"
+methods.
+
+@param[in] _plugin_id
+ @parblock
+ C identifier.
+
+ ID of the plugin which contains the source component class of which
+ to set the "seek ns from origin" and "can seek ns from origin?"
+ methods of the message iterator class.
+ @endparblock
+@param[in] _component_class_id
+ @parblock
+ C identifier.
+
+ ID of the source component class, within the plugin having the ID
+ \bt_p{_plugin_id}, of which to set the "seek ns from origin" and
+ "can seek ns from origin" methods of the message iterator class to
+ \bt_p{_seek_method} and \bt_p{_can_seek_method}.
+ @endparblock
+@param[in] _seek_method
+ @parblock
+ #bt_message_iterator_class_seek_ns_from_origin_method
+
+ Source component class's message iterator class's "seek ns from
+ origin" method.
+ @endparblock
+@param[in] _can_seek_method
+ @parblock
+ #bt_message_iterator_class_can_seek_ns_from_origin_method
+
+ Source component class's message iterator class's "can seek ns from
+ origin?" method.
+
+ Can be \c NULL, in which case it is equivalent to setting a method
+ which always returns #BT_TRUE.
+ @endparblock
+
+@bt_pre_not_null{_seek_method}
+@bt_pre_not_null{_can_seek_method}
+*/
+#define BT_PLUGIN_SOURCE_COMPONENT_CLASS_MESSAGE_ITERATOR_CLASS_SEEK_NS_FROM_ORIGIN_METHODS_WITH_ID(_plugin_id, _component_class_id, _seek_method, _can_seek_method) \
+ __BT_PLUGIN_COMPONENT_CLASS_DESCRIPTOR_ATTRIBUTE(msg_iter_seek_ns_from_origin_method, BT_PLUGIN_COMPONENT_CLASS_DESCRIPTOR_ATTRIBUTE_TYPE_MSG_ITER_SEEK_NS_FROM_ORIGIN_METHOD, _plugin_id, _component_class_id, source, _seek_method); \
+ __BT_PLUGIN_COMPONENT_CLASS_DESCRIPTOR_ATTRIBUTE(msg_iter_can_seek_ns_from_origin_method, BT_PLUGIN_COMPONENT_CLASS_DESCRIPTOR_ATTRIBUTE_TYPE_MSG_ITER_CAN_SEEK_NS_FROM_ORIGIN_METHOD, _plugin_id, _component_class_id, source, _can_seek_method)
+
+/*!
+@brief
+ Alias of
+ BT_PLUGIN_SOURCE_COMPONENT_CLASS_MESSAGE_ITERATOR_CLASS_SEEK_NS_FROM_ORIGIN_METHODS_WITH_ID()
+ with the \bt_p{_plugin_id} parameter set to <code>auto</code> and
+ the \bt_p{_component_class_id} parameter set to \bt_p{_name}.
+*/
+#define BT_PLUGIN_SOURCE_COMPONENT_CLASS_MESSAGE_ITERATOR_CLASS_SEEK_NS_FROM_ORIGIN_METHODS(_name, _seek_method, _can_seek_method) \
+ BT_PLUGIN_SOURCE_COMPONENT_CLASS_MESSAGE_ITERATOR_CLASS_SEEK_NS_FROM_ORIGIN_METHODS_WITH_ID(auto, _name, _seek_method, _can_seek_method)
+
+/*!
+@brief
+ Sets the "output port connected" method of the \bt_src_comp_cls
+ having the ID \bt_p{_component_class_id} in the plugin having the ID
+ \bt_p{_plugin_id} to \bt_p{_method}.
+
+See the
+\ref api-comp-cls-dev-meth-oport-connected "output port connected"
+method.
+
+@param[in] _plugin_id
+ @parblock
+ C identifier.
+
+ ID of the plugin which contains the source component class of which
+ to set the "output port connected" method.
+ @endparblock
+@param[in] _component_class_id
+ @parblock
+ C identifier.
+
+ ID of the source component class, within the plugin having the ID
+ \bt_p{_plugin_id}, of which to set the "output port connected"
+ method to \bt_p{_method}.
+ @endparblock
+@param[in] _method
+ @parblock
+ #bt_component_class_source_output_port_connected_method
+
+ Source component class's "output port connected" method.
+ @endparblock
+
+@bt_pre_not_null{_method}
+*/
+#define BT_PLUGIN_SOURCE_COMPONENT_CLASS_OUTPUT_PORT_CONNECTED_METHOD_WITH_ID(_plugin_id, _component_class_id, _method) \
+ __BT_PLUGIN_COMPONENT_CLASS_DESCRIPTOR_ATTRIBUTE(source_output_port_connected_method, BT_PLUGIN_COMPONENT_CLASS_DESCRIPTOR_ATTRIBUTE_TYPE_OUTPUT_PORT_CONNECTED_METHOD, _plugin_id, _component_class_id, source, _method)
+
+/*!
+@brief
+ Alias of
+ BT_PLUGIN_SOURCE_COMPONENT_CLASS_OUTPUT_PORT_CONNECTED_METHOD_WITH_ID()
+ with the \bt_p{_plugin_id} parameter set to <code>auto</code> and
+ the \bt_p{_component_class_id} parameter set to \bt_p{_name}.
+*/
+#define BT_PLUGIN_SOURCE_COMPONENT_CLASS_OUTPUT_PORT_CONNECTED_METHOD(_name, _method) \
+ BT_PLUGIN_SOURCE_COMPONENT_CLASS_OUTPUT_PORT_CONNECTED_METHOD_WITH_ID(auto, _name, _method)
+
+/*!
+@brief
+ Sets the query method of the \bt_src_comp_cls
+ having the ID \bt_p{_component_class_id} in the plugin having the ID
+ \bt_p{_plugin_id} to \bt_p{_method}.
+
+See the \ref api-comp-cls-dev-meth-query "query" method.
+
+@param[in] _plugin_id
+ @parblock
+ C identifier.
+
+ ID of the plugin which contains the source component class of which
+ to set the query method.
+ @endparblock
+@param[in] _component_class_id
+ @parblock
+ C identifier.
+
+ ID of the source component class, within the plugin having the ID
+ \bt_p{_plugin_id}, of which to set the query
+ method to \bt_p{_method}.
+ @endparblock
+@param[in] _method
+ @parblock
+ #bt_component_class_source_query_method
+
+ Source component class's query method.
+ @endparblock
+
+@bt_pre_not_null{_method}
+*/
+#define BT_PLUGIN_SOURCE_COMPONENT_CLASS_QUERY_METHOD_WITH_ID(_plugin_id, _component_class_id, _method) \
+ __BT_PLUGIN_COMPONENT_CLASS_DESCRIPTOR_ATTRIBUTE(source_query_method, BT_PLUGIN_COMPONENT_CLASS_DESCRIPTOR_ATTRIBUTE_TYPE_QUERY_METHOD, _plugin_id, _component_class_id, source, _method)
+
+/*!
+@brief
+ Alias of
+ BT_PLUGIN_SOURCE_COMPONENT_CLASS_QUERY_METHOD_WITH_ID()
+ with the \bt_p{_plugin_id} parameter set to <code>auto</code> and
+ the \bt_p{_component_class_id} parameter set to \bt_p{_name}.
+*/
+#define BT_PLUGIN_SOURCE_COMPONENT_CLASS_QUERY_METHOD(_name, _method) \
+ BT_PLUGIN_SOURCE_COMPONENT_CLASS_QUERY_METHOD_WITH_ID(auto, _name, _method)
+
+/*! @} */
+
+/*!
+@name Filter component class methods
+@{
+*/
+
+/*!
+@brief
+ Sets the finalization method of the \bt_flt_comp_cls having the ID
+ \bt_p{_component_class_id} in the plugin having the ID
+ \bt_p{_plugin_id} to \bt_p{_method}.
+
+See the \ref api-comp-cls-dev-meth-fini "finalize" method.
+
+@param[in] _plugin_id
+ @parblock
+ C identifier.
+
+ ID of the plugin which contains the filter component class of which
+ to set the finalization method.
+ @endparblock
+@param[in] _component_class_id
+ @parblock
+ C identifier.
+
+ ID of the filter component class, within the plugin having the ID
+ \bt_p{_plugin_id}, of which to set the finalization method to
+ \bt_p{_method}.
+ @endparblock
+@param[in] _method
+ @parblock
+ #bt_component_class_filter_finalize_method
+
+ Filter component class's finalization method.
+ @endparblock
+
+@bt_pre_not_null{_method}
+*/
+#define BT_PLUGIN_FILTER_COMPONENT_CLASS_FINALIZE_METHOD_WITH_ID(_plugin_id, _component_class_id, _method) \
+ __BT_PLUGIN_COMPONENT_CLASS_DESCRIPTOR_ATTRIBUTE(filter_finalize_method, BT_PLUGIN_COMPONENT_CLASS_DESCRIPTOR_ATTRIBUTE_TYPE_FINALIZE_METHOD, _plugin_id, _component_class_id, filter, _method)
+
+/*!
+@brief
+ Alias of
+ BT_PLUGIN_FILTER_COMPONENT_CLASS_FINALIZE_METHOD_WITH_ID()
+ with the \bt_p{_plugin_id} parameter set to <code>auto</code> and
+ the \bt_p{_component_class_id} parameter set to \bt_p{_name}.
+*/
+#define BT_PLUGIN_FILTER_COMPONENT_CLASS_FINALIZE_METHOD(_name, _method) \
+ BT_PLUGIN_FILTER_COMPONENT_CLASS_FINALIZE_METHOD_WITH_ID(auto, _name, _method)
+
+/*!
+@brief
+ Sets the \"get supported \bt_mip versions\" method of the
+ \bt_flt_comp_cls having the ID \bt_p{_component_class_id} in the
+ plugin having the ID \bt_p{_plugin_id} to \bt_p{_method}.
+
+See the \ref api-comp-cls-dev-meth-mip "get supported MIP versions"
+method.
+
+@param[in] _plugin_id
+ @parblock
+ C identifier.
+
+ ID of the plugin which contains the filter component class of which
+ to set the "get supported MIP versions" method.
+ @endparblock
+@param[in] _component_class_id
+ @parblock
+ C identifier.
+
+ ID of the filter component class, within the plugin having the ID
+ \bt_p{_plugin_id}, of which to set the "get supported MIP versions"
+ method to \bt_p{_method}.
+ @endparblock
+@param[in] _method
+ @parblock
+ #bt_component_class_filter_get_supported_mip_versions_method
+
+ Filter component class's "get supported MIP versions" method.
+ @endparblock
+
+@bt_pre_not_null{_method}
+*/
+#define BT_PLUGIN_FILTER_COMPONENT_CLASS_GET_SUPPORTED_MIP_VERSIONS_METHOD_WITH_ID(_plugin_id, _component_class_id, _method) \
+ __BT_PLUGIN_COMPONENT_CLASS_DESCRIPTOR_ATTRIBUTE(filter_get_supported_mip_versions_method, BT_PLUGIN_COMPONENT_CLASS_DESCRIPTOR_ATTRIBUTE_TYPE_GET_SUPPORTED_MIP_VERSIONS, _plugin_id, _component_class_id, filter, _method)
+
+/*!
+@brief
+ Alias of
+ BT_PLUGIN_FILTER_COMPONENT_CLASS_GET_SUPPORTED_MIP_VERSIONS_METHOD_WITH_ID()
+ with the \bt_p{_plugin_id} parameter set to <code>auto</code> and
+ the \bt_p{_component_class_id} parameter set to \bt_p{_name}.
+*/
+#define BT_PLUGIN_FILTER_COMPONENT_CLASS_GET_SUPPORTED_MIP_VERSIONS_METHOD(_name, _method) \
+ BT_PLUGIN_FILTER_COMPONENT_CLASS_GET_SUPPORTED_MIP_VERSIONS_METHOD_WITH_ID(auto, _name, _method)
+
+/*!
+@brief
+ Sets the initialization method of the \bt_flt_comp_cls having the ID
+ \bt_p{_component_class_id} in the plugin having the ID
+ \bt_p{_plugin_id} to \bt_p{_method}.
+
+See the \ref api-comp-cls-dev-meth-init "initialize" method.
+
+@param[in] _plugin_id
+ @parblock
+ C identifier.
+
+ ID of the plugin which contains the filter component class of which
+ to set the initialization method.
+ @endparblock
+@param[in] _component_class_id
+ @parblock
+ C identifier.
+
+ ID of the filter component class, within the plugin having the ID
+ \bt_p{_plugin_id}, of which to set the initialization method to
+ \bt_p{_method}.
+ @endparblock
+@param[in] _method
+ @parblock
+ #bt_component_class_filter_initialize_method
+
+ Filter component class's initialization method.
+ @endparblock
+
+@bt_pre_not_null{_method}
+*/
+#define BT_PLUGIN_FILTER_COMPONENT_CLASS_INITIALIZE_METHOD_WITH_ID(_plugin_id, _component_class_id, _method) \
+ __BT_PLUGIN_COMPONENT_CLASS_DESCRIPTOR_ATTRIBUTE(filter_initialize_method, BT_PLUGIN_COMPONENT_CLASS_DESCRIPTOR_ATTRIBUTE_TYPE_INITIALIZE_METHOD, _plugin_id, _component_class_id, filter, _method)
+
+/*!
+@brief
+ Alias of
+ BT_PLUGIN_FILTER_COMPONENT_CLASS_INITIALIZE_METHOD_WITH_ID()
+ with the \bt_p{_plugin_id} parameter set to <code>auto</code> and
+ the \bt_p{_component_class_id} parameter set to \bt_p{_name}.
+*/
+#define BT_PLUGIN_FILTER_COMPONENT_CLASS_INITIALIZE_METHOD(_name, _method) \
+ BT_PLUGIN_FILTER_COMPONENT_CLASS_INITIALIZE_METHOD_WITH_ID(auto, _name, _method)
+
+/*!
+@brief
+ Sets the "input port connected" method of the \bt_flt_comp_cls
+ having the ID \bt_p{_component_class_id} in the plugin having the ID
+ \bt_p{_plugin_id} to \bt_p{_method}.
+
+See the
+\ref api-comp-cls-dev-meth-iport-connected "input port connected"
+method.
+
+@param[in] _plugin_id
+ @parblock
+ C identifier.
+
+ ID of the plugin which contains the filter component class of which
+ to set the "input port connected" method.
+ @endparblock
+@param[in] _component_class_id
+ @parblock
+ C identifier.
+
+ ID of the filter component class, within the plugin having the ID
+ \bt_p{_plugin_id}, of which to set the "input port connected"
+ method to \bt_p{_method}.
+ @endparblock
+@param[in] _method
+ @parblock
+ #bt_component_class_filter_input_port_connected_method
+
+ Filter component class's "input port connected" method.
+ @endparblock
+
+@bt_pre_not_null{_method}
+*/
+#define BT_PLUGIN_FILTER_COMPONENT_CLASS_INPUT_PORT_CONNECTED_METHOD_WITH_ID(_plugin_id, _component_class_id, _method) \
+ __BT_PLUGIN_COMPONENT_CLASS_DESCRIPTOR_ATTRIBUTE(filter_input_port_connected_method, BT_PLUGIN_COMPONENT_CLASS_DESCRIPTOR_ATTRIBUTE_TYPE_INPUT_PORT_CONNECTED_METHOD, _plugin_id, _component_class_id, filter, _method)
+
+/*!
+@brief
+ Alias of
+ BT_PLUGIN_FILTER_COMPONENT_CLASS_INPUT_PORT_CONNECTED_METHOD_WITH_ID()
+ with the \bt_p{_plugin_id} parameter set to <code>auto</code> and
+ the \bt_p{_component_class_id} parameter set to \bt_p{_name}.
+*/
+#define BT_PLUGIN_FILTER_COMPONENT_CLASS_INPUT_PORT_CONNECTED_METHOD(_name, _method) \
+ BT_PLUGIN_FILTER_COMPONENT_CLASS_INPUT_PORT_CONNECTED_METHOD_WITH_ID(auto, _name, _method)
+
+/*!
+@brief
+ Sets the finalization method of the \bt_msg_iter_cls of the
+ \bt_flt_comp_cls having the ID \bt_p{_component_class_id} in the
+ plugin having the ID \bt_p{_plugin_id} to \bt_p{_method}.
+
+See the \ref api-msg-iter-cls-meth-fini "finalize" method.
+
+@param[in] _plugin_id
+ @parblock
+ C identifier.
+
+ ID of the plugin which contains the filter component class of which
+ to set the finalization method of the message iterator class.
+ @endparblock
+@param[in] _component_class_id
+ @parblock
+ C identifier.
+
+ ID of the filter component class, within the plugin having the ID
+ \bt_p{_plugin_id}, of which to set the finalization method of the
+ message iterator class to \bt_p{_method}.
+ @endparblock
+@param[in] _method
+ @parblock
+ #bt_message_iterator_class_finalize_method
+
+ Filter component class's message iterator class's finalization method.
+ @endparblock
+
+@bt_pre_not_null{_method}
+*/
+#define BT_PLUGIN_FILTER_COMPONENT_CLASS_MESSAGE_ITERATOR_CLASS_FINALIZE_METHOD_WITH_ID(_plugin_id, _component_class_id, _method) \
+ __BT_PLUGIN_COMPONENT_CLASS_DESCRIPTOR_ATTRIBUTE(msg_iter_finalize_method, BT_PLUGIN_COMPONENT_CLASS_DESCRIPTOR_ATTRIBUTE_TYPE_MSG_ITER_FINALIZE_METHOD, _plugin_id, _component_class_id, filter, _method)
+
+/*!
+@brief
+ Alias of
+ BT_PLUGIN_FILTER_COMPONENT_CLASS_MESSAGE_ITERATOR_CLASS_FINALIZE_METHOD_WITH_ID()
+ with the \bt_p{_plugin_id} parameter set to <code>auto</code> and
+ the \bt_p{_component_class_id} parameter set to \bt_p{_name}.
+*/
+#define BT_PLUGIN_FILTER_COMPONENT_CLASS_MESSAGE_ITERATOR_CLASS_FINALIZE_METHOD(_name, _method) \
+ BT_PLUGIN_FILTER_COMPONENT_CLASS_MESSAGE_ITERATOR_CLASS_FINALIZE_METHOD_WITH_ID(auto, _name, _method)
+
+/*!
+@brief
+ Sets the initialization method of the \bt_msg_iter_cls of the
+ \bt_flt_comp_cls having the ID \bt_p{_component_class_id} in the
+ plugin having the ID \bt_p{_plugin_id} to \bt_p{_method}.
+
+See the \ref api-msg-iter-cls-meth-init "initialize" method.
+
+@param[in] _plugin_id
+ @parblock
+ C identifier.
+
+ ID of the plugin which contains the filter component class of which
+ to set the initialization method of the message iterator class.
+ @endparblock
+@param[in] _component_class_id
+ @parblock
+ C identifier.
+
+ ID of the filter component class, within the plugin having the ID
+ \bt_p{_plugin_id}, of which to set the initialization method of the
+ message iterator class to \bt_p{_method}.
+ @endparblock
+@param[in] _method
+ @parblock
+ #bt_message_iterator_class_initialize_method
+
+ Filter component class's message iterator class's initialization
+ method.
+ @endparblock
+
+@bt_pre_not_null{_method}
+*/
+#define BT_PLUGIN_FILTER_COMPONENT_CLASS_MESSAGE_ITERATOR_CLASS_INITIALIZE_METHOD_WITH_ID(_plugin_id, _component_class_id, _method) \
+ __BT_PLUGIN_COMPONENT_CLASS_DESCRIPTOR_ATTRIBUTE(msg_iter_initialize_method, BT_PLUGIN_COMPONENT_CLASS_DESCRIPTOR_ATTRIBUTE_TYPE_MSG_ITER_INITIALIZE_METHOD, _plugin_id, _component_class_id, filter, _method)
+
+/*!
+@brief
+ Alias of
+ BT_PLUGIN_FILTER_COMPONENT_CLASS_MESSAGE_ITERATOR_CLASS_INITIALIZE_METHOD_WITH_ID()
+ with the \bt_p{_plugin_id} parameter set to <code>auto</code> and
+ the \bt_p{_component_class_id} parameter set to \bt_p{_name}.
+*/
+#define BT_PLUGIN_FILTER_COMPONENT_CLASS_MESSAGE_ITERATOR_CLASS_INITIALIZE_METHOD(_name, _method) \
+ BT_PLUGIN_FILTER_COMPONENT_CLASS_MESSAGE_ITERATOR_CLASS_INITIALIZE_METHOD_WITH_ID(auto, _name, _method)
+
+/*!
+@brief
+ Sets the "seek beginning" and "can seek beginning?" methods of the
+ \bt_msg_iter_cls of the \bt_flt_comp_cls having the ID
+ \bt_p{_component_class_id} in the plugin having the ID
+ \bt_p{_plugin_id} to \bt_p{_seek_method} and
+ \bt_p{_can_seek_method}.
+
+See the \ref api-msg-iter-cls-meth-seek-beg "seek beginning" and
+\ref api-msg-iter-cls-meth-can-seek-beg "can seek beginning?" methods.
+
+@param[in] _plugin_id
+ @parblock
+ C identifier.
+
+ ID of the plugin which contains the filter component class of which
+ to set the "seek beginning" and "can seek beginning?" methods of the
+ message iterator class.
+ @endparblock
+@param[in] _component_class_id
+ @parblock
+ C identifier.
+
+ ID of the filter component class, within the plugin having the ID
+ \bt_p{_plugin_id}, of which to set the "seek beginning" and "can
+ seek beginning" methods of the message iterator class to
+ \bt_p{_seek_method} and \bt_p{_can_seek_method}.
+ @endparblock
+@param[in] _seek_method
+ @parblock
+ #bt_message_iterator_class_seek_beginning_method
+
+ Filter component class's message iterator class's "seek beginning"
+ method.
+ @endparblock
+@param[in] _can_seek_method
+ @parblock
+ #bt_message_iterator_class_can_seek_beginning_method
+
+ Filter component class's message iterator class's
+ "can seek beginning?" method.
+
+ Can be \c NULL, in which case it is equivalent to setting a method
+ which always returns #BT_TRUE.
+ @endparblock
+
+@bt_pre_not_null{_seek_method}
+@bt_pre_not_null{_can_seek_method}
+*/
+#define BT_PLUGIN_FILTER_COMPONENT_CLASS_MESSAGE_ITERATOR_CLASS_SEEK_BEGINNING_METHODS_WITH_ID(_plugin_id, _component_class_id, _seek_method, _can_seek_method) \
+ __BT_PLUGIN_COMPONENT_CLASS_DESCRIPTOR_ATTRIBUTE(msg_iter_seek_beginning_method, BT_PLUGIN_COMPONENT_CLASS_DESCRIPTOR_ATTRIBUTE_TYPE_MSG_ITER_SEEK_BEGINNING_METHOD, _plugin_id, _component_class_id, filter, _seek_method); \
+ __BT_PLUGIN_COMPONENT_CLASS_DESCRIPTOR_ATTRIBUTE(msg_iter_can_seek_beginning_method, BT_PLUGIN_COMPONENT_CLASS_DESCRIPTOR_ATTRIBUTE_TYPE_MSG_ITER_CAN_SEEK_BEGINNING_METHOD, _plugin_id, _component_class_id, filter, _can_seek_method);
+
+/*!
+@brief
+ Alias of
+ BT_PLUGIN_FILTER_COMPONENT_CLASS_MESSAGE_ITERATOR_CLASS_SEEK_BEGINNING_METHODS_WITH_ID()
+ with the \bt_p{_plugin_id} parameter set to <code>auto</code> and
+ the \bt_p{_component_class_id} parameter set to \bt_p{_name}.
+*/
+#define BT_PLUGIN_FILTER_COMPONENT_CLASS_MESSAGE_ITERATOR_CLASS_SEEK_BEGINNING_METHODS(_name, _seek_method, _can_seek_method) \
+ BT_PLUGIN_FILTER_COMPONENT_CLASS_MESSAGE_ITERATOR_CLASS_SEEK_BEGINNING_METHODS_WITH_ID(auto, _name, _seek_method, _can_seek_method)
+
+/*!
+@brief
+ Sets the "seek ns from origin" and "can seek ns from origin?"
+ methods of the \bt_msg_iter_cls of the \bt_flt_comp_cls having the
+ ID \bt_p{_component_class_id} in the plugin having the ID
+ \bt_p{_plugin_id} to \bt_p{_seek_method} and
+ \bt_p{_can_seek_method}.
+
+See the \ref api-msg-iter-cls-meth-seek-ns "seek ns from origin" and
+\ref api-msg-iter-cls-meth-can-seek-ns "can seek ns from origin?"
+methods.
+
+@param[in] _plugin_id
+ @parblock
+ C identifier.
+
+ ID of the plugin which contains the filter component class of which
+ to set the "seek ns from origin" and "can seek ns from origin?"
+ methods of the message iterator class.
+ @endparblock
+@param[in] _component_class_id
+ @parblock
+ C identifier.
+
+ ID of the filter component class, within the plugin having the ID
+ \bt_p{_plugin_id}, of which to set the "seek ns from origin" and
+ "can seek ns from origin" methods of the message iterator class to
+ \bt_p{_seek_method} and \bt_p{_can_seek_method}.
+ @endparblock
+@param[in] _seek_method
+ @parblock
+ #bt_message_iterator_class_seek_ns_from_origin_method
+
+ Filter component class's message iterator class's "seek ns from
+ origin" method.
+ @endparblock
+@param[in] _can_seek_method
+ @parblock
+ #bt_message_iterator_class_can_seek_ns_from_origin_method
+
+ Filter component class's message iterator class's "can seek ns from
+ origin?" method.
+
+ Can be \c NULL, in which case it is equivalent to setting a method
+ which always returns #BT_TRUE.
+ @endparblock
+
+@bt_pre_not_null{_seek_method}
+@bt_pre_not_null{_can_seek_method}
+*/
+#define BT_PLUGIN_FILTER_COMPONENT_CLASS_MESSAGE_ITERATOR_CLASS_SEEK_NS_FROM_ORIGIN_METHODS_WITH_ID(_plugin_id, _component_class_id, _seek_method, _can_seek_method) \
+ __BT_PLUGIN_COMPONENT_CLASS_DESCRIPTOR_ATTRIBUTE(msg_iter_seek_ns_from_origin_method, BT_PLUGIN_COMPONENT_CLASS_DESCRIPTOR_ATTRIBUTE_TYPE_MSG_ITER_SEEK_NS_FROM_ORIGIN_METHOD, _plugin_id, _component_class_id, filter, _seek_method); \
+ __BT_PLUGIN_COMPONENT_CLASS_DESCRIPTOR_ATTRIBUTE(msg_iter_can_seek_ns_from_origin_method, BT_PLUGIN_COMPONENT_CLASS_DESCRIPTOR_ATTRIBUTE_TYPE_MSG_ITER_CAN_SEEK_NS_FROM_ORIGIN_METHOD, _plugin_id, _component_class_id, filter, _can_seek_method)
+
+/*!
+@brief
+ Alias of
+ BT_PLUGIN_FILTER_COMPONENT_CLASS_MESSAGE_ITERATOR_CLASS_SEEK_NS_FROM_ORIGIN_METHODS_WITH_ID()
+ with the \bt_p{_plugin_id} parameter set to <code>auto</code> and
+ the \bt_p{_component_class_id} parameter set to \bt_p{_name}.
+*/
+#define BT_PLUGIN_FILTER_COMPONENT_CLASS_MESSAGE_ITERATOR_CLASS_SEEK_NS_FROM_ORIGIN_METHODS(_name, _seek_method, _can_seek_method) \
+ BT_PLUGIN_FILTER_COMPONENT_CLASS_MESSAGE_ITERATOR_CLASS_SEEK_NS_FROM_ORIGIN_METHODS_WITH_ID(auto, _name, _seek_method, _can_seek_method)
+
+/*!
+@brief
+ Sets the "output port connected" method of the \bt_flt_comp_cls
+ having the ID \bt_p{_component_class_id} in the plugin having the ID
+ \bt_p{_plugin_id} to \bt_p{_method}.
+
+See the
+\ref api-comp-cls-dev-meth-oport-connected "output port connected"
+method.
+
+@param[in] _plugin_id
+ @parblock
+ C identifier.
+
+ ID of the plugin which contains the filter component class of which
+ to set the "output port connected" method.
+ @endparblock
+@param[in] _component_class_id
+ @parblock
+ C identifier.
+
+ ID of the filter component class, within the plugin having the ID
+ \bt_p{_plugin_id}, of which to set the "output port connected"
+ method to \bt_p{_method}.
+ @endparblock
+@param[in] _method
+ @parblock
+ #bt_component_class_filter_output_port_connected_method
+
+ Filter component class's "output port connected" method.
+ @endparblock
+
+@bt_pre_not_null{_method}
+*/
+#define BT_PLUGIN_FILTER_COMPONENT_CLASS_OUTPUT_PORT_CONNECTED_METHOD_WITH_ID(_plugin_id, _component_class_id, _method) \
+ __BT_PLUGIN_COMPONENT_CLASS_DESCRIPTOR_ATTRIBUTE(filter_output_port_connected_method, BT_PLUGIN_COMPONENT_CLASS_DESCRIPTOR_ATTRIBUTE_TYPE_OUTPUT_PORT_CONNECTED_METHOD, _plugin_id, _component_class_id, filter, _method)
+
+/*!
+@brief
+ Alias of
+ BT_PLUGIN_FILTER_COMPONENT_CLASS_OUTPUT_PORT_CONNECTED_METHOD_WITH_ID()
+ with the \bt_p{_plugin_id} parameter set to <code>auto</code> and
+ the \bt_p{_component_class_id} parameter set to \bt_p{_name}.
+*/
+#define BT_PLUGIN_FILTER_COMPONENT_CLASS_OUTPUT_PORT_CONNECTED_METHOD(_name, _method) \
+ BT_PLUGIN_FILTER_COMPONENT_CLASS_OUTPUT_PORT_CONNECTED_METHOD_WITH_ID(auto, _name, _method)
+
+/*!
+@brief
+ Sets the query method of the \bt_flt_comp_cls
+ having the ID \bt_p{_component_class_id} in the plugin having the ID
+ \bt_p{_plugin_id} to \bt_p{_method}.
+
+See the \ref api-comp-cls-dev-meth-query "query" method.
+
+@param[in] _plugin_id
+ @parblock
+ C identifier.
+
+ ID of the plugin which contains the filter component class of which
+ to set the query method.
+ @endparblock
+@param[in] _component_class_id
+ @parblock
+ C identifier.
+
+ ID of the filter component class, within the plugin having the ID
+ \bt_p{_plugin_id}, of which to set the query
+ method to \bt_p{_method}.
+ @endparblock
+@param[in] _method
+ @parblock
+ #bt_component_class_filter_query_method
+
+ Filter component class's query method.
+ @endparblock
+
+@bt_pre_not_null{_method}
+*/
+#define BT_PLUGIN_FILTER_COMPONENT_CLASS_QUERY_METHOD_WITH_ID(_plugin_id, _component_class_id, _method) \
+ __BT_PLUGIN_COMPONENT_CLASS_DESCRIPTOR_ATTRIBUTE(filter_query_method, BT_PLUGIN_COMPONENT_CLASS_DESCRIPTOR_ATTRIBUTE_TYPE_QUERY_METHOD, _plugin_id, _component_class_id, filter, _method)
+
+/*!
+@brief
+ Alias of
+ BT_PLUGIN_FILTER_COMPONENT_CLASS_QUERY_METHOD_WITH_ID()
+ with the \bt_p{_plugin_id} parameter set to <code>auto</code> and
+ the \bt_p{_component_class_id} parameter set to \bt_p{_name}.
+*/
+#define BT_PLUGIN_FILTER_COMPONENT_CLASS_QUERY_METHOD(_name, _method) \
+ BT_PLUGIN_FILTER_COMPONENT_CLASS_QUERY_METHOD_WITH_ID(auto, _name, _method)
+
+/*! @} */
+
+/*!
+@name Sink component class methods
+@{
+*/
+
+/*!
+@brief
+ Sets the finalization method of the \bt_sink_comp_cls having the ID
+ \bt_p{_component_class_id} in the plugin having the ID
+ \bt_p{_plugin_id} to \bt_p{_method}.
+
+See the \ref api-comp-cls-dev-meth-fini "finalize" method.
+
+@param[in] _plugin_id
+ @parblock
+ C identifier.
+
+ ID of the plugin which contains the sink component class of which
+ to set the finalization method.
+ @endparblock
+@param[in] _component_class_id
+ @parblock
+ C identifier.
+
+ ID of the sink component class, within the plugin having the ID
+ \bt_p{_plugin_id}, of which to set the finalization method to
+ \bt_p{_method}.
+ @endparblock
+@param[in] _method
+ @parblock
+ #bt_component_class_sink_finalize_method
+
+ Sink component class's finalization method.
+ @endparblock
+
+@bt_pre_not_null{_method}
+*/
+#define BT_PLUGIN_SINK_COMPONENT_CLASS_FINALIZE_METHOD_WITH_ID(_plugin_id, _component_class_id, _method) \
+ __BT_PLUGIN_COMPONENT_CLASS_DESCRIPTOR_ATTRIBUTE(sink_finalize_method, BT_PLUGIN_COMPONENT_CLASS_DESCRIPTOR_ATTRIBUTE_TYPE_FINALIZE_METHOD, _plugin_id, _component_class_id, sink, _method)
+
+/*!
+@brief
+ Alias of
+ BT_PLUGIN_SINK_COMPONENT_CLASS_FINALIZE_METHOD_WITH_ID()
+ with the \bt_p{_plugin_id} parameter set to <code>auto</code> and
+ the \bt_p{_component_class_id} parameter set to \bt_p{_name}.
+*/
+#define BT_PLUGIN_SINK_COMPONENT_CLASS_FINALIZE_METHOD(_name, _method) \
+ BT_PLUGIN_SINK_COMPONENT_CLASS_FINALIZE_METHOD_WITH_ID(auto, _name, _method)
+
+/*!
+@brief
+ Sets the \"get supported \bt_mip versions\" method of the
+ \bt_sink_comp_cls having the ID \bt_p{_component_class_id} in the
+ plugin having the ID \bt_p{_plugin_id} to \bt_p{_method}.
+
+See the \ref api-comp-cls-dev-meth-mip "get supported MIP versions"
+method.
+
+@param[in] _plugin_id
+ @parblock
+ C identifier.
+
+ ID of the plugin which contains the sink component class of which
+ to set the "get supported MIP versions" method.
+ @endparblock
+@param[in] _component_class_id
+ @parblock
+ C identifier.
+
+ ID of the sink component class, within the plugin having the ID
+ \bt_p{_plugin_id}, of which to set the "get supported MIP versions"
+ method to \bt_p{_method}.
+ @endparblock
+@param[in] _method
+ @parblock
+ #bt_component_class_sink_get_supported_mip_versions_method
+
+ Sink component class's "get supported MIP versions" method.
+ @endparblock
+
+@bt_pre_not_null{_method}
+*/
+#define BT_PLUGIN_SINK_COMPONENT_CLASS_GET_SUPPORTED_MIP_VERSIONS_METHOD_WITH_ID(_plugin_id, _component_class_id, _method) \
+ __BT_PLUGIN_COMPONENT_CLASS_DESCRIPTOR_ATTRIBUTE(sink_get_supported_mip_versions_method, BT_PLUGIN_COMPONENT_CLASS_DESCRIPTOR_ATTRIBUTE_TYPE_GET_SUPPORTED_MIP_VERSIONS, _plugin_id, _component_class_id, sink, _method)
+
+/*!
+@brief
+ Alias of
+ BT_PLUGIN_SINK_COMPONENT_CLASS_GET_SUPPORTED_MIP_VERSIONS_METHOD_WITH_ID()
+ with the \bt_p{_plugin_id} parameter set to <code>auto</code> and
+ the \bt_p{_component_class_id} parameter set to \bt_p{_name}.
+*/
+#define BT_PLUGIN_SINK_COMPONENT_CLASS_GET_SUPPORTED_MIP_VERSIONS_METHOD(_name, _method) \
+ BT_PLUGIN_SINK_COMPONENT_CLASS_GET_SUPPORTED_MIP_VERSIONS_METHOD_WITH_ID(auto, _name, _method)
+
+/*!
+@brief
+ Sets the "graph is configured" method of the \bt_sink_comp_cls
+ having the ID \bt_p{_component_class_id} in the plugin having the ID
+ \bt_p{_plugin_id} to \bt_p{_method}.
+
+See the
+\ref api-comp-cls-dev-meth-graph-configured "graph is configured"
+method.
+
+@param[in] _plugin_id
+ @parblock
+ C identifier.
+
+ ID of the plugin which contains the sink component class of which
+ to set the "graph is configured" method.
+ @endparblock
+@param[in] _component_class_id
+ @parblock
+ C identifier.
+
+ ID of the sink component class, within the plugin having the ID
+ \bt_p{_plugin_id}, of which to set the "graph is configured"
+ method to \bt_p{_method}.
+ @endparblock
+@param[in] _method
+ @parblock
+ #bt_component_class_sink_graph_is_configured_method
+
+ Sink component class's "graph is configured" method.
+ @endparblock
+
+@bt_pre_not_null{_method}
+*/
+#define BT_PLUGIN_SINK_COMPONENT_CLASS_GRAPH_IS_CONFIGURED_METHOD_WITH_ID(_plugin_id, _component_class_id, _method) \
+ __BT_PLUGIN_COMPONENT_CLASS_DESCRIPTOR_ATTRIBUTE(sink_graph_is_configured_method, BT_PLUGIN_COMPONENT_CLASS_DESCRIPTOR_ATTRIBUTE_TYPE_GRAPH_IS_CONFIGURED_METHOD, _plugin_id, _component_class_id, sink, _method)
+
+/*!
+@brief
+ Alias of
+ BT_PLUGIN_SINK_COMPONENT_CLASS_GRAPH_IS_CONFIGURED_METHOD_WITH_ID()
+ with the \bt_p{_plugin_id} parameter set to <code>auto</code> and
+ the \bt_p{_component_class_id} parameter set to \bt_p{_name}.
+*/
+#define BT_PLUGIN_SINK_COMPONENT_CLASS_GRAPH_IS_CONFIGURED_METHOD(_name, _method) \
+ BT_PLUGIN_SINK_COMPONENT_CLASS_GRAPH_IS_CONFIGURED_METHOD_WITH_ID(auto, _name, _method)
+
+/*!
+@brief
+ Sets the initialization method of the \bt_sink_comp_cls having the
+ ID \bt_p{_component_class_id} in the plugin having the ID
+ \bt_p{_plugin_id} to \bt_p{_method}.
+
+See the \ref api-comp-cls-dev-meth-init "initialize" method.
+
+@param[in] _plugin_id
+ @parblock
+ C identifier.
+
+ ID of the plugin which contains the sink component class of which
+ to set the initialization method.
+ @endparblock
+@param[in] _component_class_id
+ @parblock
+ C identifier.
+
+ ID of the sink component class, within the plugin having the ID
+ \bt_p{_plugin_id}, of which to set the initialization method to
+ \bt_p{_method}.
+ @endparblock
+@param[in] _method
+ @parblock
+ #bt_component_class_sink_initialize_method
+
+ Sink component class's initialization method.
+ @endparblock
+
+@bt_pre_not_null{_method}
+*/
+#define BT_PLUGIN_SINK_COMPONENT_CLASS_INITIALIZE_METHOD_WITH_ID(_plugin_id, _component_class_id, _method) \
+ __BT_PLUGIN_COMPONENT_CLASS_DESCRIPTOR_ATTRIBUTE(sink_initialize_method, BT_PLUGIN_COMPONENT_CLASS_DESCRIPTOR_ATTRIBUTE_TYPE_INITIALIZE_METHOD, _plugin_id, _component_class_id, sink, _method)
+
+/*!
+@brief
+ Alias of
+ BT_PLUGIN_SINK_COMPONENT_CLASS_INITIALIZE_METHOD_WITH_ID()
+ with the \bt_p{_plugin_id} parameter set to <code>auto</code> and
+ the \bt_p{_component_class_id} parameter set to \bt_p{_name}.
+*/
+#define BT_PLUGIN_SINK_COMPONENT_CLASS_INITIALIZE_METHOD(_name, _method) \
+ BT_PLUGIN_SINK_COMPONENT_CLASS_INITIALIZE_METHOD_WITH_ID(auto, _name, _method)
+
+/*!
+@brief
+ Sets the "input port connected" method of the \bt_sink_comp_cls
+ having the ID \bt_p{_component_class_id} in the plugin having the ID
+ \bt_p{_plugin_id} to \bt_p{_method}.
+
+See the
+\ref api-comp-cls-dev-meth-iport-connected "input port connected"
+method.
+
+@param[in] _plugin_id
+ @parblock
+ C identifier.
+
+ ID of the plugin which contains the sink component class of which
+ to set the "input port connected" method.
+ @endparblock
+@param[in] _component_class_id
+ @parblock
+ C identifier.
+
+ ID of the sink component class, within the plugin having the ID
+ \bt_p{_plugin_id}, of which to set the "input port connected"
+ method to \bt_p{_method}.
+ @endparblock
+@param[in] _method
+ @parblock
+ #bt_component_class_sink_input_port_connected_method
+
+ Sink component class's "input port connected" method.
+ @endparblock
+
+@bt_pre_not_null{_method}
+*/
+#define BT_PLUGIN_SINK_COMPONENT_CLASS_INPUT_PORT_CONNECTED_METHOD_WITH_ID(_plugin_id, _component_class_id, _method) \
+ __BT_PLUGIN_COMPONENT_CLASS_DESCRIPTOR_ATTRIBUTE(sink_input_port_connected_method, BT_PLUGIN_COMPONENT_CLASS_DESCRIPTOR_ATTRIBUTE_TYPE_INPUT_PORT_CONNECTED_METHOD, _plugin_id, _component_class_id, sink, _method)
+
+/*!
+@brief
+ Alias of
+ BT_PLUGIN_SINK_COMPONENT_CLASS_INPUT_PORT_CONNECTED_METHOD_WITH_ID()
+ with the \bt_p{_plugin_id} parameter set to <code>auto</code> and
+ the \bt_p{_component_class_id} parameter set to \bt_p{_name}.
+*/
+#define BT_PLUGIN_SINK_COMPONENT_CLASS_INPUT_PORT_CONNECTED_METHOD(_name, _method) \
+ BT_PLUGIN_SINK_COMPONENT_CLASS_INPUT_PORT_CONNECTED_METHOD_WITH_ID(auto, _name, _method)
+
+/*!
+@brief
+ Sets the query method of the \bt_sink_comp_cls
+ having the ID \bt_p{_component_class_id} in the plugin having the ID
+ \bt_p{_plugin_id} to \bt_p{_method}.
+
+See the \ref api-comp-cls-dev-meth-query "query" method.
+
+@param[in] _plugin_id
+ @parblock
+ C identifier.
+
+ ID of the plugin which contains the sink component class of which
+ to set the query method.
+ @endparblock
+@param[in] _component_class_id
+ @parblock
+ C identifier.
+
+ ID of the sink component class, within the plugin having the ID
+ \bt_p{_plugin_id}, of which to set the query
+ method to \bt_p{_method}.
+ @endparblock
+@param[in] _method
+ @parblock
+ #bt_component_class_sink_query_method
+
+ Sink component class's query method.
+ @endparblock
+
+@bt_pre_not_null{_method}
+*/
+#define BT_PLUGIN_SINK_COMPONENT_CLASS_QUERY_METHOD_WITH_ID(_plugin_id, _component_class_id, _method) \
+ __BT_PLUGIN_COMPONENT_CLASS_DESCRIPTOR_ATTRIBUTE(sink_query_method, BT_PLUGIN_COMPONENT_CLASS_DESCRIPTOR_ATTRIBUTE_TYPE_QUERY_METHOD, _plugin_id, _component_class_id, sink, _method)
+
+/*!
+@brief
+ Alias of
+ BT_PLUGIN_SINK_COMPONENT_CLASS_QUERY_METHOD_WITH_ID()
+ with the \bt_p{_plugin_id} parameter set to <code>auto</code> and
+ the \bt_p{_component_class_id} parameter set to \bt_p{_name}.
+*/
+#define BT_PLUGIN_SINK_COMPONENT_CLASS_QUERY_METHOD(_name, _method) \
+ BT_PLUGIN_SINK_COMPONENT_CLASS_QUERY_METHOD_WITH_ID(auto, _name, _method)
+
+/*! @} */
+
+/*! @} */
+