Implement the Component Graph API
[babeltrace.git] / lib / plugin-system / component-graph.c
CommitLineData
c0418dd9
JG
1/*
2 * component-graph.c
3 *
4 * Babeltrace Plugin Component Graph
5 *
6 * Copyright 2016 Jérémie Galarneau <jeremie.galarneau@efficios.com>
7 *
8 * Author: Jérémie Galarneau <jeremie.galarneau@efficios.com>
9 *
10 * Permission is hereby granted, free of charge, to any person obtaining a copy
11 * of this software and associated documentation files (the "Software"), to deal
12 * in the Software without restriction, including without limitation the rights
13 * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
14 * copies of the Software, and to permit persons to whom the Software is
15 * furnished to do so, subject to the following conditions:
16 *
17 * The above copyright notice and this permission notice shall be included in
18 * all copies or substantial portions of the Software.
19 *
20 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
21 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
22 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
23 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
24 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
25 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
26 * SOFTWARE.
27 */
28
29#include <babeltrace/plugin/component-graph-internal.h>
30#include <babeltrace/compiler.h>
31
32static void bt_component_graph_destroy(struct bt_object *obj)
33{
34 struct bt_component_graph *graph = container_of(obj,
35 struct bt_component_graph, base);
36
37 if (graph->connections) {
38 g_ptr_array_free(graph->connections, TRUE);
39 }
40 if (graph->sinks) {
41 g_ptr_array_free(graph->sinks, TRUE);
42 }
43 g_free(graph);
44}
45
46struct bt_component_graph *bt_component_graph_create(void)
47{
48 struct bt_component_graph *graph;
49
50 graph = g_new0(struct bt_component_graph, 1);
51 if (!graph) {
52 goto end;
53 }
54
55 bt_object_init(graph, bt_component_graph_destroy);
56
57 graph->connections = g_ptr_array_new_with_free_func(bt_put);
58 if (!graph->connections) {
59 goto error;
60 }
61 graph->sinks = g_ptr_array_new_with_free_func(bt_put);
62 if (!graph->sinks) {
63 goto error;
64 }
65end:
66 return graph;
67error:
68 BT_PUT(graph);
69 goto end;
70}
71
72enum bt_component_graph_status bt_component_graph_connect(
73 struct bt_component_graph *graph, struct bt_component *upstream,
74 struct bt_component *downstream)
75{
76 return BT_COMPONENT_GRAPH_STATUS_OK;
77}
78
79enum bt_component_graph_status bt_component_graph_add_component(
80 struct bt_component_graph *graph,
81 struct bt_component *component)
82{
83 return BT_COMPONENT_GRAPH_STATUS_OK;
84}
85
86enum bt_component_graph_status bt_component_graph_add_component_as_sibling(
87 struct bt_component_graph *graph, struct bt_component *origin,
88 struct bt_component *new_component)
89{
90 return BT_COMPONENT_GRAPH_STATUS_OK;
91}
92
93enum bt_component_graph_status bt_component_graph_run(
94 struct bt_component_graph *graph)
95{
96 return BT_COMPONENT_GRAPH_STATUS_OK;
97}
98
This page took 0.026036 seconds and 4 git commands to generate.