X-Git-Url: https://git.efficios.com/?a=blobdiff_plain;f=src%2Fplugins%2Futils%2Fdummy%2Fdummy.c;h=330a68632924890647b3dff2f44acef3c555bf5a;hb=30c7958bfdffaa405274deb40a71fda50bd1da60;hp=6f772561c5674660621293ef9acb3598b56e001c;hpb=7c7301d5827bd10ec7c34da7ffc5fe74e5047d38;p=babeltrace.git diff --git a/src/plugins/utils/dummy/dummy.c b/src/plugins/utils/dummy/dummy.c index 6f772561..330a6863 100644 --- a/src/plugins/utils/dummy/dummy.c +++ b/src/plugins/utils/dummy/dummy.c @@ -1,23 +1,7 @@ /* - * Copyright 2017 Philippe Proulx - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: + * SPDX-License-Identifier: MIT * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. + * Copyright 2017 Philippe Proulx */ #define BT_COMP_LOG_SELF_COMP self_comp @@ -37,12 +21,11 @@ const char * const in_port_name = "in"; static void destroy_private_dummy_data(struct dummy *dummy) { - bt_self_component_port_input_message_iterator_put_ref(dummy->msg_iter); + bt_message_iterator_put_ref(dummy->msg_iter); g_free(dummy); } -BT_HIDDEN void dummy_finalize(bt_self_component_sink *comp) { struct dummy *dummy; @@ -54,16 +37,16 @@ void dummy_finalize(bt_self_component_sink *comp) destroy_private_dummy_data(dummy); } +static struct bt_param_validation_map_value_entry_descr dummy_params[] = { BT_PARAM_VALIDATION_MAP_VALUE_ENTRY_END }; -BT_HIDDEN bt_component_class_initialize_method_status dummy_init( bt_self_component_sink *self_comp_sink, - bt_self_component_sink_configuration *config, + bt_self_component_sink_configuration *config __attribute__((unused)), const bt_value *params, - __attribute__((unused)) void *init_method_data) + void *init_method_data __attribute__((unused))) { bt_self_component *self_comp = bt_self_component_sink_as_self_component(self_comp_sink); @@ -112,28 +95,27 @@ end: return status; } -BT_HIDDEN bt_component_class_sink_graph_is_configured_method_status dummy_graph_is_configured( bt_self_component_sink *comp) { bt_component_class_sink_graph_is_configured_method_status status; - bt_self_component_port_input_message_iterator_create_from_sink_component_status + bt_message_iterator_create_from_sink_component_status msg_iter_status; struct dummy *dummy; - bt_self_component_port_input_message_iterator *iterator; + bt_message_iterator *iterator; dummy = bt_self_component_get_data( bt_self_component_sink_as_self_component(comp)); BT_ASSERT(dummy); - msg_iter_status = bt_self_component_port_input_message_iterator_create_from_sink_component( + msg_iter_status = bt_message_iterator_create_from_sink_component( comp, bt_self_component_sink_borrow_input_port_by_name(comp, in_port_name), &iterator); - if (msg_iter_status != BT_SELF_COMPONENT_PORT_INPUT_MESSAGE_ITERATOR_CREATE_FROM_SINK_COMPONENT_STATUS_OK) { + if (msg_iter_status != BT_MESSAGE_ITERATOR_CREATE_FROM_SINK_COMPONENT_STATUS_OK) { status = (int) msg_iter_status; goto end; } - BT_SELF_COMPONENT_PORT_INPUT_MESSAGE_ITERATOR_MOVE_REF( + BT_MESSAGE_ITERATOR_MOVE_REF( dummy->msg_iter, iterator); status = BT_COMPONENT_CLASS_SINK_GRAPH_IS_CONFIGURED_METHOD_STATUS_OK; @@ -142,20 +124,19 @@ end: return status; } -BT_HIDDEN bt_component_class_sink_consume_method_status dummy_consume( bt_self_component_sink *component) { - bt_component_class_sink_consume_method_status status = - BT_COMPONENT_CLASS_SINK_CONSUME_METHOD_STATUS_OK; + bt_component_class_sink_consume_method_status status; bt_message_array_const msgs; uint64_t count; struct dummy *dummy; bt_message_iterator_next_status next_status; uint64_t i; + bt_self_component *self_comp = + bt_self_component_sink_as_self_component(component); - dummy = bt_self_component_get_data( - bt_self_component_sink_as_self_component(component)); + dummy = bt_self_component_get_data(self_comp); BT_ASSERT_DBG(dummy); if (G_UNLIKELY(!dummy->msg_iter)) { @@ -164,33 +145,27 @@ bt_component_class_sink_consume_method_status dummy_consume( } /* Consume one message */ - next_status = bt_self_component_port_input_message_iterator_next( + next_status = bt_message_iterator_next( dummy->msg_iter, &msgs, &count); switch (next_status) { case BT_MESSAGE_ITERATOR_NEXT_STATUS_OK: - status = BT_COMPONENT_CLASS_SINK_CONSUME_METHOD_STATUS_OK; - for (i = 0; i < count; i++) { bt_message_put_ref(msgs[i]); } break; - case BT_MESSAGE_ITERATOR_NEXT_STATUS_AGAIN: - status = BT_COMPONENT_CLASS_SINK_CONSUME_METHOD_STATUS_AGAIN; - goto end; - case BT_MESSAGE_ITERATOR_NEXT_STATUS_END: - status = BT_COMPONENT_CLASS_SINK_CONSUME_METHOD_STATUS_END; - goto end; case BT_MESSAGE_ITERATOR_NEXT_STATUS_ERROR: - status = BT_COMPONENT_CLASS_SINK_CONSUME_METHOD_STATUS_ERROR; - goto end; case BT_MESSAGE_ITERATOR_NEXT_STATUS_MEMORY_ERROR: - status = BT_COMPONENT_CLASS_SINK_CONSUME_METHOD_STATUS_MEMORY_ERROR; - goto end; + BT_CURRENT_THREAD_ERROR_APPEND_CAUSE_FROM_COMPONENT( + self_comp, + "Failed to get messages from upstream component"); + break; default: break; } + status = (int) next_status; + end: return status; }