SO plugin API: add comp. class query info method macro and use it
[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>
19#include <babeltrace/component/component.h>
20
d3e4dcd8 21static enum bt_component_status sink_consume(struct bt_component *component)
cbb9e0b1 22{
cbb9e0b1
PP
23 return BT_COMPONENT_STATUS_OK;
24}
25
d3eb6e8f
PP
26static enum bt_notification_iterator_status dummy_iterator_init_method(
27 struct bt_component *component,
8b0ce102
PP
28 struct bt_notification_iterator *iterator,
29 void *init_method_data)
cbb9e0b1 30{
d3eb6e8f
PP
31 return BT_NOTIFICATION_ITERATOR_STATUS_OK;
32}
33
34static void dummy_iterator_destroy_method(
35 struct bt_notification_iterator *iterator)
36{
37}
38
39static struct bt_notification *dummy_iterator_get_method(
40 struct bt_notification_iterator *iterator)
41{
42 return NULL;
43}
44
45static enum bt_notification_iterator_status dummy_iterator_next_method(
46 struct bt_notification_iterator *iterator)
47{
48 return BT_NOTIFICATION_ITERATOR_STATUS_OK;
49}
50
51static enum bt_notification_iterator_status dummy_iterator_seek_time_method(
52 struct bt_notification_iterator *iterator, int64_t time)
53{
54 return BT_NOTIFICATION_ITERATOR_STATUS_OK;
cbb9e0b1
PP
55}
56
6ba0b073 57BT_PLUGIN(test_sfs);
cbb9e0b1
PP
58BT_PLUGIN_DESCRIPTION("Babeltrace plugin with source, sink, and filter component classes");
59BT_PLUGIN_AUTHOR("Janine Sutto");
60BT_PLUGIN_LICENSE("Beerware");
458e8e1d 61BT_PLUGIN_VERSION(1, 2, 3, "yes");
cbb9e0b1 62
d3eb6e8f
PP
63BT_PLUGIN_SOURCE_COMPONENT_CLASS(source, dummy_iterator_get_method,
64 dummy_iterator_next_method);
d3e4dcd8 65BT_PLUGIN_SOURCE_COMPONENT_CLASS_DESCRIPTION(source, "A source.");
d3eb6e8f
PP
66BT_PLUGIN_SOURCE_COMPONENT_CLASS_NOTIFICATION_ITERATOR_INIT_METHOD(source,
67 dummy_iterator_init_method);
68BT_PLUGIN_SOURCE_COMPONENT_CLASS_NOTIFICATION_ITERATOR_DESTROY_METHOD(source,
69 dummy_iterator_destroy_method);
70BT_PLUGIN_SOURCE_COMPONENT_CLASS_NOTIFICATION_ITERATOR_SEEK_TIME_METHOD(source,
71 dummy_iterator_seek_time_method);
6ba0b073 72
d3e4dcd8
PP
73BT_PLUGIN_SINK_COMPONENT_CLASS(sink, sink_consume);
74BT_PLUGIN_SINK_COMPONENT_CLASS_DESCRIPTION(sink, "A sink.");
a889b89f
PP
75BT_PLUGIN_SINK_COMPONENT_CLASS_HELP(sink,
76 "Bacon ipsum dolor amet strip steak cupim pastrami venison shoulder.\n"
77 "Prosciutto beef ribs flank meatloaf pancetta brisket kielbasa drumstick\n"
78 "venison tenderloin cow tail. Beef short loin shoulder meatball, sirloin\n"
79 "ground round brisket salami cupim pork bresaola turkey bacon boudin.\n"
80);
6ba0b073 81
d3eb6e8f
PP
82BT_PLUGIN_FILTER_COMPONENT_CLASS(filter, dummy_iterator_get_method,
83 dummy_iterator_next_method);
d3e4dcd8 84BT_PLUGIN_FILTER_COMPONENT_CLASS_DESCRIPTION(filter, "A filter.");
d3eb6e8f
PP
85BT_PLUGIN_FILTER_COMPONENT_CLASS_NOTIFICATION_ITERATOR_INIT_METHOD(filter,
86 dummy_iterator_init_method);
87BT_PLUGIN_FILTER_COMPONENT_CLASS_NOTIFICATION_ITERATOR_DESTROY_METHOD(filter,
88 dummy_iterator_destroy_method);
89BT_PLUGIN_FILTER_COMPONENT_CLASS_NOTIFICATION_ITERATOR_SEEK_TIME_METHOD(filter,
90 dummy_iterator_seek_time_method);
This page took 0.026641 seconds and 4 git commands to generate.