Fix: macro name for "get supported mip versions method" attribute descriptor
[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
71c5da58 18#include <babeltrace2/babeltrace.h>
57952005 19#include "common/assert.h"
cbb9e0b1 20
fb25b9e3 21static bt_component_class_sink_consume_method_status sink_consume(
8eee8ea2 22 bt_self_component_sink *self_comp)
cbb9e0b1 23{
fb25b9e3 24 return BT_COMPONENT_CLASS_SINK_CONSUME_METHOD_STATUS_OK;
cbb9e0b1
PP
25}
26
bc1f90cd
SM
27static bt_component_class_get_supported_mip_versions_method_status
28sink_get_supported_mip_versions(
29 bt_self_component_class_sink *source_component_class,
30 const bt_value *params, void *initialize_method_data,
31 bt_logging_level logging_level,
32 bt_integer_range_set_unsigned *supported_versions)
33{
34 return (int) bt_integer_range_set_unsigned_add_range(
35 supported_versions, 0, 0);
36}
37
68e2deed 38static bt_message_iterator_class_initialize_method_status
fb25b9e3 39src_dummy_iterator_init_method(
b09a5592 40 bt_self_message_iterator *self_msg_iter,
9415de1c 41 bt_self_message_iterator_configuration *config,
8eee8ea2 42 bt_self_component_port_output *self_port)
cbb9e0b1 43{
68e2deed 44 return BT_MESSAGE_ITERATOR_CLASS_INITIALIZE_METHOD_STATUS_OK;
834e9996
PP
45}
46
68e2deed 47static bt_message_iterator_class_initialize_method_status
fb25b9e3 48flt_dummy_iterator_init_method(
b09a5592 49 bt_self_message_iterator *self_msg_iter,
9415de1c 50 bt_self_message_iterator_configuration *config,
8eee8ea2 51 bt_self_component_port_output *self_port)
834e9996 52{
68e2deed 53 return BT_MESSAGE_ITERATOR_CLASS_INITIALIZE_METHOD_STATUS_OK;
d3eb6e8f
PP
54}
55
64cadc66 56static void dummy_iterator_finalize_method(
b09a5592 57 bt_self_message_iterator *self_msg_iter)
d3eb6e8f
PP
58{
59}
60
68e2deed 61static bt_message_iterator_class_next_method_status
fb25b9e3 62dummy_iterator_next_method(
b09a5592
PP
63 bt_self_message_iterator *self_msg_iter,
64 bt_message_array_const msgs, uint64_t capacity,
3fd7b79d 65 uint64_t *count)
d3eb6e8f 66{
68e2deed 67 return BT_MESSAGE_ITERATOR_CLASS_NEXT_METHOD_STATUS_OK;
d3eb6e8f
PP
68}
69
fb25b9e3 70static bt_component_class_query_method_status flt_query_method(
8eee8ea2 71 bt_self_component_class_filter *component_class,
bf403eb2 72 bt_private_query_executor *priv_query_exec,
8eee8ea2 73 const char *object, const bt_value *params,
f6e305ce 74 __attribute__((unused)) void *method_data,
8eee8ea2 75 const bt_value **result)
5933c0f2 76{
8eee8ea2
PP
77 bt_value *res = bt_value_array_create();
78 bt_value *val;
ce141536 79 *result = res;
1286dcbb 80 int iret;
5933c0f2 81
834e9996 82 BT_ASSERT(*result);
ce141536
PP
83 iret = bt_value_array_append_string_element(res, object);
84 BT_ASSERT(iret == 0);
6284461f 85 iret = bt_value_copy(params, &val);
b8f13b8b 86 BT_ASSERT(iret == 0);
ce141536 87 iret = bt_value_array_append_element(res, val);
b8f13b8b 88 BT_ASSERT(iret == 0);
8c6884d9 89 bt_value_put_ref(val);
fb25b9e3 90 return BT_COMPONENT_CLASS_QUERY_METHOD_STATUS_OK;
5933c0f2
PP
91}
92
edb2ec3c 93BT_PLUGIN_MODULE();
6ba0b073 94BT_PLUGIN(test_sfs);
cbb9e0b1
PP
95BT_PLUGIN_DESCRIPTION("Babeltrace plugin with source, sink, and filter component classes");
96BT_PLUGIN_AUTHOR("Janine Sutto");
97BT_PLUGIN_LICENSE("Beerware");
458e8e1d 98BT_PLUGIN_VERSION(1, 2, 3, "yes");
cbb9e0b1 99
41a2b7ae 100BT_PLUGIN_SOURCE_COMPONENT_CLASS(source, dummy_iterator_next_method);
d3e4dcd8 101BT_PLUGIN_SOURCE_COMPONENT_CLASS_DESCRIPTION(source, "A source.");
92c09281 102BT_PLUGIN_SOURCE_COMPONENT_CLASS_MESSAGE_ITERATOR_CLASS_INITIALIZE_METHOD(source,
834e9996 103 src_dummy_iterator_init_method);
92c09281 104BT_PLUGIN_SOURCE_COMPONENT_CLASS_MESSAGE_ITERATOR_CLASS_FINALIZE_METHOD(source,
64cadc66 105 dummy_iterator_finalize_method);
6ba0b073 106
d3e4dcd8
PP
107BT_PLUGIN_SINK_COMPONENT_CLASS(sink, sink_consume);
108BT_PLUGIN_SINK_COMPONENT_CLASS_DESCRIPTION(sink, "A sink.");
a889b89f
PP
109BT_PLUGIN_SINK_COMPONENT_CLASS_HELP(sink,
110 "Bacon ipsum dolor amet strip steak cupim pastrami venison shoulder.\n"
111 "Prosciutto beef ribs flank meatloaf pancetta brisket kielbasa drumstick\n"
112 "venison tenderloin cow tail. Beef short loin shoulder meatball, sirloin\n"
113 "ground round brisket salami cupim pork bresaola turkey bacon boudin.\n"
114);
bc1f90cd
SM
115BT_PLUGIN_SINK_COMPONENT_CLASS_GET_SUPPORTED_MIP_VERSIONS_METHOD(sink,
116 sink_get_supported_mip_versions);
6ba0b073 117
41a2b7ae 118BT_PLUGIN_FILTER_COMPONENT_CLASS(filter, dummy_iterator_next_method);
d3e4dcd8 119BT_PLUGIN_FILTER_COMPONENT_CLASS_DESCRIPTION(filter, "A filter.");
92c09281 120BT_PLUGIN_FILTER_COMPONENT_CLASS_MESSAGE_ITERATOR_CLASS_INITIALIZE_METHOD(filter,
834e9996 121 flt_dummy_iterator_init_method);
92c09281 122BT_PLUGIN_FILTER_COMPONENT_CLASS_MESSAGE_ITERATOR_CLASS_FINALIZE_METHOD(filter,
64cadc66 123 dummy_iterator_finalize_method);
834e9996 124BT_PLUGIN_FILTER_COMPONENT_CLASS_QUERY_METHOD(filter, flt_query_method);
This page took 0.062981 seconds and 4 git commands to generate.