Move to kernel style SPDX license identifiers
[babeltrace.git] / tests / lib / test-plugin-plugins / sfs.c
... / ...
CommitLineData
1/*
2 * SPDX-License-Identifier: GPL-2.0-only
3 *
4 * Copyright (C) 2017 Philippe Proulx <pproulx@efficios.com>
5 */
6
7#include <babeltrace2/babeltrace.h>
8#include "common/assert.h"
9
10static bt_component_class_sink_consume_method_status sink_consume(
11 bt_self_component_sink *self_comp)
12{
13 return BT_COMPONENT_CLASS_SINK_CONSUME_METHOD_STATUS_OK;
14}
15
16static bt_message_iterator_class_initialize_method_status
17src_dummy_iterator_init_method(
18 bt_self_message_iterator *self_msg_iter,
19 bt_self_message_iterator_configuration *config,
20 bt_self_component_port_output *self_port)
21{
22 return BT_MESSAGE_ITERATOR_CLASS_INITIALIZE_METHOD_STATUS_OK;
23}
24
25static bt_message_iterator_class_initialize_method_status
26flt_dummy_iterator_init_method(
27 bt_self_message_iterator *self_msg_iter,
28 bt_self_message_iterator_configuration *config,
29 bt_self_component_port_output *self_port)
30{
31 return BT_MESSAGE_ITERATOR_CLASS_INITIALIZE_METHOD_STATUS_OK;
32}
33
34static void dummy_iterator_finalize_method(
35 bt_self_message_iterator *self_msg_iter)
36{
37}
38
39static bt_message_iterator_class_next_method_status
40dummy_iterator_next_method(
41 bt_self_message_iterator *self_msg_iter,
42 bt_message_array_const msgs, uint64_t capacity,
43 uint64_t *count)
44{
45 return BT_MESSAGE_ITERATOR_CLASS_NEXT_METHOD_STATUS_OK;
46}
47
48static bt_component_class_query_method_status flt_query_method(
49 bt_self_component_class_filter *component_class,
50 bt_private_query_executor *priv_query_exec,
51 const char *object, const bt_value *params,
52 __attribute__((unused)) void *method_data,
53 const bt_value **result)
54{
55 bt_value *res = bt_value_array_create();
56 bt_value *val;
57 *result = res;
58 int iret;
59
60 BT_ASSERT(*result);
61 iret = bt_value_array_append_string_element(res, object);
62 BT_ASSERT(iret == 0);
63 iret = bt_value_copy(params, &val);
64 BT_ASSERT(iret == 0);
65 iret = bt_value_array_append_element(res, val);
66 BT_ASSERT(iret == 0);
67 bt_value_put_ref(val);
68 return BT_COMPONENT_CLASS_QUERY_METHOD_STATUS_OK;
69}
70
71BT_PLUGIN_MODULE();
72BT_PLUGIN(test_sfs);
73BT_PLUGIN_DESCRIPTION("Babeltrace plugin with source, sink, and filter component classes");
74BT_PLUGIN_AUTHOR("Janine Sutto");
75BT_PLUGIN_LICENSE("Beerware");
76BT_PLUGIN_VERSION(1, 2, 3, "yes");
77
78BT_PLUGIN_SOURCE_COMPONENT_CLASS(source, dummy_iterator_next_method);
79BT_PLUGIN_SOURCE_COMPONENT_CLASS_DESCRIPTION(source, "A source.");
80BT_PLUGIN_SOURCE_COMPONENT_CLASS_MESSAGE_ITERATOR_CLASS_INITIALIZE_METHOD(source,
81 src_dummy_iterator_init_method);
82BT_PLUGIN_SOURCE_COMPONENT_CLASS_MESSAGE_ITERATOR_CLASS_FINALIZE_METHOD(source,
83 dummy_iterator_finalize_method);
84
85BT_PLUGIN_SINK_COMPONENT_CLASS(sink, sink_consume);
86BT_PLUGIN_SINK_COMPONENT_CLASS_DESCRIPTION(sink, "A sink.");
87BT_PLUGIN_SINK_COMPONENT_CLASS_HELP(sink,
88 "Bacon ipsum dolor amet strip steak cupim pastrami venison shoulder.\n"
89 "Prosciutto beef ribs flank meatloaf pancetta brisket kielbasa drumstick\n"
90 "venison tenderloin cow tail. Beef short loin shoulder meatball, sirloin\n"
91 "ground round brisket salami cupim pork bresaola turkey bacon boudin.\n"
92);
93
94BT_PLUGIN_FILTER_COMPONENT_CLASS(filter, dummy_iterator_next_method);
95BT_PLUGIN_FILTER_COMPONENT_CLASS_DESCRIPTION(filter, "A filter.");
96BT_PLUGIN_FILTER_COMPONENT_CLASS_MESSAGE_ITERATOR_CLASS_INITIALIZE_METHOD(filter,
97 flt_dummy_iterator_init_method);
98BT_PLUGIN_FILTER_COMPONENT_CLASS_MESSAGE_ITERATOR_CLASS_FINALIZE_METHOD(filter,
99 dummy_iterator_finalize_method);
100BT_PLUGIN_FILTER_COMPONENT_CLASS_QUERY_METHOD(filter, flt_query_method);
This page took 0.022567 seconds and 4 git commands to generate.