cpp-common/bt2c/fmt.hpp: use `wise_enum::string_type` in `EnableIfIsWiseEnum` definition
[babeltrace.git] / tests / lib / test-plugins-plugins / sfs.c
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
10 static bt_component_class_sink_consume_method_status sink_consume(
11 bt_self_component_sink *self_comp __attribute__((unused)))
12 {
13 return BT_COMPONENT_CLASS_SINK_CONSUME_METHOD_STATUS_OK;
14 }
15
16 static bt_component_class_get_supported_mip_versions_method_status
17 sink_get_supported_mip_versions(
18 bt_self_component_class_sink *source_component_class __attribute__((unused)),
19 const bt_value *params __attribute__((unused)),
20 void *initialize_method_data __attribute__((unused)),
21 bt_logging_level logging_level __attribute__((unused)),
22 bt_integer_range_set_unsigned *supported_versions)
23 {
24 return (int) bt_integer_range_set_unsigned_add_range(
25 supported_versions, 0, 0);
26 }
27
28 static bt_message_iterator_class_initialize_method_status
29 src_dummy_iterator_init_method(
30 bt_self_message_iterator *self_msg_iter __attribute__((unused)),
31 bt_self_message_iterator_configuration *config __attribute__((unused)),
32 bt_self_component_port_output *self_port __attribute__((unused)))
33 {
34 return BT_MESSAGE_ITERATOR_CLASS_INITIALIZE_METHOD_STATUS_OK;
35 }
36
37 static bt_message_iterator_class_initialize_method_status
38 flt_dummy_iterator_init_method(
39 bt_self_message_iterator *self_msg_iter __attribute__((unused)),
40 bt_self_message_iterator_configuration *config __attribute__((unused)),
41 bt_self_component_port_output *self_port __attribute__((unused)))
42 {
43 return BT_MESSAGE_ITERATOR_CLASS_INITIALIZE_METHOD_STATUS_OK;
44 }
45
46 static void dummy_iterator_finalize_method(
47 bt_self_message_iterator *self_msg_iter __attribute__((unused)))
48 {
49 }
50
51 static bt_message_iterator_class_next_method_status
52 dummy_iterator_next_method(
53 bt_self_message_iterator *self_msg_iter __attribute__((unused)),
54 bt_message_array_const msgs __attribute__((unused)),
55 uint64_t capacity __attribute__((unused)),
56 uint64_t *count __attribute__((unused)))
57 {
58 return BT_MESSAGE_ITERATOR_CLASS_NEXT_METHOD_STATUS_OK;
59 }
60
61 static bt_component_class_query_method_status flt_query_method(
62 bt_self_component_class_filter *component_class __attribute__((unused)),
63 bt_private_query_executor *priv_query_exec __attribute__((unused)),
64 const char *object, const bt_value *params,
65 __attribute__((unused)) void *method_data,
66 const bt_value **result)
67 {
68 bt_value *res = bt_value_array_create();
69 bt_value *val;
70 *result = res;
71 int iret;
72
73 BT_ASSERT(*result);
74 iret = bt_value_array_append_string_element(res, object);
75 BT_ASSERT(iret == 0);
76 iret = bt_value_copy(params, &val);
77 BT_ASSERT(iret == 0);
78 iret = bt_value_array_append_element(res, val);
79 BT_ASSERT(iret == 0);
80 bt_value_put_ref(val);
81 return BT_COMPONENT_CLASS_QUERY_METHOD_STATUS_OK;
82 }
83
84 BT_PLUGIN_MODULE();
85 BT_PLUGIN(test_sfs);
86 BT_PLUGIN_DESCRIPTION("Babeltrace plugin with source, sink, and filter component classes");
87 BT_PLUGIN_AUTHOR("Janine Sutto");
88 BT_PLUGIN_LICENSE("Beerware");
89 BT_PLUGIN_VERSION(1, 2, 3, "yes");
90
91 BT_PLUGIN_SOURCE_COMPONENT_CLASS(source, dummy_iterator_next_method);
92 BT_PLUGIN_SOURCE_COMPONENT_CLASS_DESCRIPTION(source, "A source.");
93 BT_PLUGIN_SOURCE_COMPONENT_CLASS_MESSAGE_ITERATOR_CLASS_INITIALIZE_METHOD(source,
94 src_dummy_iterator_init_method);
95 BT_PLUGIN_SOURCE_COMPONENT_CLASS_MESSAGE_ITERATOR_CLASS_FINALIZE_METHOD(source,
96 dummy_iterator_finalize_method);
97
98 BT_PLUGIN_SINK_COMPONENT_CLASS(sink, sink_consume);
99 BT_PLUGIN_SINK_COMPONENT_CLASS_DESCRIPTION(sink, "A sink.");
100 BT_PLUGIN_SINK_COMPONENT_CLASS_HELP(sink,
101 "Bacon ipsum dolor amet strip steak cupim pastrami venison shoulder.\n"
102 "Prosciutto beef ribs flank meatloaf pancetta brisket kielbasa drumstick\n"
103 "venison tenderloin cow tail. Beef short loin shoulder meatball, sirloin\n"
104 "ground round brisket salami cupim pork bresaola turkey bacon boudin.\n"
105 );
106 BT_PLUGIN_SINK_COMPONENT_CLASS_GET_SUPPORTED_MIP_VERSIONS_METHOD(sink,
107 sink_get_supported_mip_versions);
108
109 BT_PLUGIN_FILTER_COMPONENT_CLASS(filter, dummy_iterator_next_method);
110 BT_PLUGIN_FILTER_COMPONENT_CLASS_DESCRIPTION(filter, "A filter.");
111 BT_PLUGIN_FILTER_COMPONENT_CLASS_MESSAGE_ITERATOR_CLASS_INITIALIZE_METHOD(filter,
112 flt_dummy_iterator_init_method);
113 BT_PLUGIN_FILTER_COMPONENT_CLASS_MESSAGE_ITERATOR_CLASS_FINALIZE_METHOD(filter,
114 dummy_iterator_finalize_method);
115 BT_PLUGIN_FILTER_COMPONENT_CLASS_QUERY_METHOD(filter, flt_query_method);
This page took 0.030261 seconds and 4 git commands to generate.