lib: graph.c: add missing `enum` and `const` keywords
[babeltrace.git] / src / lib / graph / graph.c
index e4aed1f28143550eb647d4a7065274289e257b07..ebcd9db8954ec08a26cfeaa2f922b843b59916aa 100644 (file)
@@ -42,6 +42,7 @@
 #include <unistd.h>
 #include <glib.h>
 
+#include "component-class-sink-simple.h"
 #include "component.h"
 #include "component-sink.h"
 #include "connection.h"
@@ -700,9 +701,9 @@ end:
        return status;
 }
 
-enum bt_graph_consume_status bt_graph_consume(struct bt_graph *graph)
+enum bt_graph_run_once_status bt_graph_run_once(struct bt_graph *graph)
 {
-       enum bt_graph_consume_status status;
+       enum bt_graph_run_once_status status;
 
        BT_ASSERT_PRE_DEV_NON_NULL(graph, "Graph");
        BT_ASSERT_PRE_DEV(graph->can_consume,
@@ -1265,7 +1266,7 @@ int add_component_with_init_method_data(
                comp_init_method_t init_method,
                const char *name, const struct bt_value *params,
                void *init_method_data, bt_logging_level log_level,
-               struct bt_component **user_component)
+               const struct bt_component **user_component)
 {
        int status = BT_FUNC_STATUS_OK;
        enum bt_component_class_init_method_status init_status;
@@ -1352,7 +1353,8 @@ int add_component_with_init_method_data(
 
        /*
         * If it's a sink component, it needs to be part of the graph's
-        * sink queue to be consumed by bt_graph_consume().
+        * sink queue to be consumed by bt_graph_run() or
+        * bt_graph_run_once().
         */
        if (bt_component_is_sink(component)) {
                graph->has_sink = true;
@@ -1408,7 +1410,7 @@ enum bt_graph_add_component_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,
-               bt_logging_level log_level,
+               enum bt_logging_level log_level,
                const struct bt_component_source **component)
 {
        return bt_graph_add_source_component_with_init_method_data(
@@ -1420,7 +1422,7 @@ 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, bt_logging_level log_level,
+               void *init_method_data, enum bt_logging_level log_level,
                const struct bt_component_filter **component)
 {
        BT_ASSERT_PRE_NON_NULL(comp_cls, "Component class");
@@ -1433,7 +1435,7 @@ enum bt_graph_add_component_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,
-               bt_logging_level log_level,
+               enum bt_logging_level log_level,
                const struct bt_component_filter **component)
 {
        return bt_graph_add_filter_component_with_init_method_data(
@@ -1445,7 +1447,7 @@ 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, bt_logging_level log_level,
+               void *init_method_data, enum bt_logging_level log_level,
                const struct bt_component_sink **component)
 {
        BT_ASSERT_PRE_NON_NULL(comp_cls, "Component class");
@@ -1458,13 +1460,51 @@ enum bt_graph_add_component_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,
-               bt_logging_level log_level,
+               enum bt_logging_level log_level,
                const struct bt_component_sink **component)
 {
        return bt_graph_add_sink_component_with_init_method_data(
                graph, comp_cls, name, params, NULL, log_level, component);
 }
 
+enum bt_graph_add_component_status
+bt_graph_add_simple_sink_component(struct bt_graph *graph, const char *name,
+               bt_graph_simple_sink_component_init_func init_func,
+               bt_graph_simple_sink_component_consume_func consume_func,
+               bt_graph_simple_sink_component_finalize_func finalize_func,
+               void *user_data, const bt_component_sink **component)
+{
+       enum bt_graph_add_component_status status;
+       struct bt_component_class_sink *comp_cls;
+       struct simple_sink_init_method_data init_method_data = {
+               .init_func = init_func,
+               .consume_func = consume_func,
+               .finalize_func = finalize_func,
+               .user_data = user_data,
+       };
+
+       /*
+        * Other preconditions are checked by
+        * bt_graph_add_sink_component_with_init_method_data().
+        */
+       BT_ASSERT_PRE_NON_NULL(consume_func, "Consume function");
+
+       comp_cls = bt_component_class_sink_simple_borrow();
+       if (!comp_cls) {
+               BT_LIB_LOGE_APPEND_CAUSE(
+                       "Cannot borrow simple sink component class.");
+               status = BT_FUNC_STATUS_MEMORY_ERROR;
+               goto end;
+       }
+
+       status = bt_graph_add_sink_component_with_init_method_data(graph,
+               comp_cls, name, NULL, &init_method_data,
+               BT_LOGGING_LEVEL_NONE, component);
+
+end:
+       return status;
+}
+
 BT_HIDDEN
 int bt_graph_remove_unconnected_component(struct bt_graph *graph,
                struct bt_component *component)
This page took 0.026229 seconds and 4 git commands to generate.