+ BT_ASSERT_PRE_NON_NULL(comp_cls, "Component class");
+ return add_component_with_init_method_data(graph,
+ (void *) comp_cls, (comp_init_method_t) comp_cls->methods.init,
+ name, params, init_method_data, (void *) component);
+}
+
+enum bt_graph_status bt_graph_add_source_component(
+ struct bt_graph *graph,
+ const struct bt_component_class_source *comp_cls,
+ const char *name, const struct bt_value *params,
+ const struct bt_component_source **component)
+{
+ return bt_graph_add_source_component_with_init_method_data(
+ graph, comp_cls, name, params, NULL, component);
+}
+
+enum bt_graph_status
+bt_graph_add_filter_component_with_init_method_data(
+ struct bt_graph *graph,
+ const struct bt_component_class_filter *comp_cls,
+ const char *name, const struct bt_value *params,
+ void *init_method_data,
+ const struct bt_component_filter **component)
+{
+ BT_ASSERT_PRE_NON_NULL(comp_cls, "Component class");
+ return add_component_with_init_method_data(graph,
+ (void *) comp_cls, (comp_init_method_t) comp_cls->methods.init,
+ name, params, init_method_data, (void *) component);
+}
+
+enum bt_graph_status bt_graph_add_filter_component(
+ struct bt_graph *graph,
+ const struct bt_component_class_filter *comp_cls,
+ const char *name, const struct bt_value *params,
+ const struct bt_component_filter **component)
+{
+ return bt_graph_add_filter_component_with_init_method_data(
+ graph, comp_cls, name, params, NULL, component);
+}
+
+enum bt_graph_status
+bt_graph_add_sink_component_with_init_method_data(
+ struct bt_graph *graph,
+ const struct bt_component_class_sink *comp_cls,
+ const char *name, const struct bt_value *params,
+ void *init_method_data,
+ const struct bt_component_sink **component)
+{
+ BT_ASSERT_PRE_NON_NULL(comp_cls, "Component class");
+ return add_component_with_init_method_data(graph,
+ (void *) comp_cls, (comp_init_method_t) comp_cls->methods.init,
+ name, params, init_method_data, (void *) component);
+}
+
+enum bt_graph_status bt_graph_add_sink_component(
+ struct bt_graph *graph,
+ const struct bt_component_class_sink *comp_cls,
+ const char *name, const struct bt_value *params,
+ const struct bt_component_sink **component)
+{
+ return bt_graph_add_sink_component_with_init_method_data(
+ graph, comp_cls, name, params, NULL, component);