lib: remove internal stream destroy listener API
[babeltrace.git] / tests / lib / test-plugin-plugins / sfs.c
CommitLineData
cbb9e0b1
PP
1/*
2 * Copyright (c) 2017 Philippe Proulx <pproulx@efficios.com>
3 *
4 * This program is free software; you can redistribute it and/or modify
5 * it under the terms of the GNU General Public License as published by
6 * the Free Software Foundation; under version 2 of the License.
7 *
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
12 *
13 * You should have received a copy of the GNU General Public License along
14 * with this program; if not, write to the Free Software Foundation, Inc.,
15 * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
16 */
17
18#include <babeltrace/plugin/plugin-dev.h>
b2e0c907 19#include <babeltrace/graph/component-class.h>
5933c0f2
PP
20#include <babeltrace/values.h>
21#include <babeltrace/ref.h>
25583cd0
PP
22#include <babeltrace/assert-internal.h>
23#include <babeltrace/assert-internal.h>
cbb9e0b1 24
890882ef
PP
25static enum bt_component_status sink_consume(
26 struct bt_private_component *private_component)
cbb9e0b1 27{
cbb9e0b1
PP
28 return BT_COMPONENT_STATUS_OK;
29}
30
d3eb6e8f 31static enum bt_notification_iterator_status dummy_iterator_init_method(
90157d89 32 struct bt_private_connection_private_notification_iterator *private_iterator,
91457551 33 struct bt_private_port *private_port)
cbb9e0b1 34{
d3eb6e8f
PP
35 return BT_NOTIFICATION_ITERATOR_STATUS_OK;
36}
37
64cadc66 38static void dummy_iterator_finalize_method(
90157d89 39 struct bt_private_connection_private_notification_iterator *private_iterator)
d3eb6e8f
PP
40{
41}
42
90157d89
PP
43static struct bt_notification_iterator_next_method_return dummy_iterator_next_method(
44 struct bt_private_connection_private_notification_iterator *private_iterator)
d3eb6e8f 45{
90157d89 46 struct bt_notification_iterator_next_method_return next_return = {
41a2b7ae
PP
47 .notification = NULL,
48 .status = BT_NOTIFICATION_ITERATOR_STATUS_OK,
49 };
d3eb6e8f 50
41a2b7ae 51 return next_return;
d3eb6e8f
PP
52}
53
90157d89 54static struct bt_component_class_query_method_return query_method(
5933c0f2 55 struct bt_component_class *component_class,
c7eee084 56 struct bt_query_executor *query_exec,
a67681c1 57 const char *object, struct bt_value *params)
5933c0f2 58{
90157d89 59 struct bt_component_class_query_method_return ret = {
c7eee084
PP
60 .status = BT_QUERY_STATUS_OK,
61 .result = bt_value_array_create(),
62 };
63 int iret;
5933c0f2 64
25583cd0 65 BT_ASSERT(ret.result);
c7eee084 66 iret = bt_value_array_append_string(ret.result, object);
25583cd0 67 BT_ASSERT(iret == 0);
c7eee084 68 iret = bt_value_array_append(ret.result, params);
25583cd0 69 BT_ASSERT(iret == 0);
c7eee084 70 return ret;
5933c0f2
PP
71}
72
df5b5d01 73BT_PLUGIN_MODULE();
6ba0b073 74BT_PLUGIN(test_sfs);
cbb9e0b1
PP
75BT_PLUGIN_DESCRIPTION("Babeltrace plugin with source, sink, and filter component classes");
76BT_PLUGIN_AUTHOR("Janine Sutto");
77BT_PLUGIN_LICENSE("Beerware");
458e8e1d 78BT_PLUGIN_VERSION(1, 2, 3, "yes");
cbb9e0b1 79
41a2b7ae 80BT_PLUGIN_SOURCE_COMPONENT_CLASS(source, dummy_iterator_next_method);
d3e4dcd8 81BT_PLUGIN_SOURCE_COMPONENT_CLASS_DESCRIPTION(source, "A source.");
d3eb6e8f
PP
82BT_PLUGIN_SOURCE_COMPONENT_CLASS_NOTIFICATION_ITERATOR_INIT_METHOD(source,
83 dummy_iterator_init_method);
64cadc66
PP
84BT_PLUGIN_SOURCE_COMPONENT_CLASS_NOTIFICATION_ITERATOR_FINALIZE_METHOD(source,
85 dummy_iterator_finalize_method);
6ba0b073 86
d3e4dcd8
PP
87BT_PLUGIN_SINK_COMPONENT_CLASS(sink, sink_consume);
88BT_PLUGIN_SINK_COMPONENT_CLASS_DESCRIPTION(sink, "A sink.");
a889b89f
PP
89BT_PLUGIN_SINK_COMPONENT_CLASS_HELP(sink,
90 "Bacon ipsum dolor amet strip steak cupim pastrami venison shoulder.\n"
91 "Prosciutto beef ribs flank meatloaf pancetta brisket kielbasa drumstick\n"
92 "venison tenderloin cow tail. Beef short loin shoulder meatball, sirloin\n"
93 "ground round brisket salami cupim pork bresaola turkey bacon boudin.\n"
94);
6ba0b073 95
41a2b7ae 96BT_PLUGIN_FILTER_COMPONENT_CLASS(filter, dummy_iterator_next_method);
d3e4dcd8 97BT_PLUGIN_FILTER_COMPONENT_CLASS_DESCRIPTION(filter, "A filter.");
d3eb6e8f
PP
98BT_PLUGIN_FILTER_COMPONENT_CLASS_NOTIFICATION_ITERATOR_INIT_METHOD(filter,
99 dummy_iterator_init_method);
64cadc66
PP
100BT_PLUGIN_FILTER_COMPONENT_CLASS_NOTIFICATION_ITERATOR_FINALIZE_METHOD(filter,
101 dummy_iterator_finalize_method);
a67681c1 102BT_PLUGIN_FILTER_COMPONENT_CLASS_QUERY_METHOD(filter, query_method);
This page took 0.037586 seconds and 4 git commands to generate.