X-Git-Url: http://git.efficios.com/?a=blobdiff_plain;f=src%2Fplugins%2Ftext%2Fdetails%2Fdetails.c;h=ae389b25562778fd148c8ae55736c34559020b92;hb=818919b92b3dfe0834cec1c2e15d6ed6a41abb70;hp=585f97b267b4532a3d2f000726eb33cc0abd18b8;hpb=98b15851a941e7342b8bb19e265cdc3a40fabfb8;p=babeltrace.git diff --git a/src/plugins/text/details/details.c b/src/plugins/text/details/details.c index 585f97b2..ae389b25 100644 --- a/src/plugins/text/details/details.c +++ b/src/plugins/text/details/details.c @@ -1,23 +1,7 @@ /* - * Copyright 2019 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: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. + * SPDX-License-Identifier: MIT * - * 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 2019 Philippe Proulx */ #define BT_COMP_LOG_SELF_COMP (details_comp->self_comp) @@ -25,6 +9,8 @@ #define BT_LOG_TAG "PLUGIN/SINK.TEXT.DETAILS" #include "logging/comp-logging.h" +#include + #include #include "common/common.h" @@ -33,15 +19,6 @@ #include "write.h" #include "plugins/common/param-validation/param-validation.h" -#define LOG_WRONG_PARAM_TYPE(_name, _value, _exp_type) \ - do { \ - BT_COMP_LOGE("Wrong `%s` parameter type: type=%s, " \ - "expected-type=%s", \ - (_name), bt_common_value_type_string( \ - bt_value_get_type(_value)), \ - bt_common_value_type_string(_exp_type)); \ - } while (0) - #define IN_PORT_NAME "in" #define COLOR_PARAM_NAME "color" #define WITH_METADATA_PARAM_NAME "with-metadata" @@ -160,7 +137,7 @@ void destroy_details_comp(struct details_comp *details_comp) details_comp->str = NULL; } - BT_SELF_COMPONENT_PORT_INPUT_MESSAGE_ITERATOR_PUT_REF_AND_RESET( + BT_MESSAGE_ITERATOR_PUT_REF_AND_RESET( details_comp->msg_iter); g_free(details_comp); @@ -371,18 +348,9 @@ bt_component_class_initialize_method_status details_init( add_port_status = bt_self_component_sink_add_input_port(comp, IN_PORT_NAME, NULL, NULL); - switch (add_port_status) { - case BT_SELF_COMPONENT_ADD_PORT_STATUS_OK: - status = BT_COMPONENT_CLASS_INITIALIZE_METHOD_STATUS_OK; - break; - case BT_SELF_COMPONENT_ADD_PORT_STATUS_ERROR: - status = BT_COMPONENT_CLASS_INITIALIZE_METHOD_STATUS_ERROR; - break; - case BT_SELF_COMPONENT_ADD_PORT_STATUS_MEMORY_ERROR: - status = BT_COMPONENT_CLASS_INITIALIZE_METHOD_STATUS_MEMORY_ERROR; - break; - default: - abort(); + if (add_port_status != BT_SELF_COMPONENT_ADD_PORT_STATUS_OK) { + status = (int) add_port_status; + goto error; } details_comp = create_details_comp(comp); @@ -417,9 +385,9 @@ bt_component_class_sink_graph_is_configured_method_status details_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; - bt_self_component_port_input_message_iterator *iterator; + bt_message_iterator *iterator; struct details_comp *details_comp; bt_self_component_port_input *in_port; @@ -436,15 +404,15 @@ details_graph_is_configured(bt_self_component_sink *comp) goto end; } - 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( details_comp->msg_iter, iterator); status = BT_COMPONENT_CLASS_SINK_GRAPH_IS_CONFIGURED_METHOD_STATUS_OK; @@ -457,8 +425,7 @@ BT_HIDDEN bt_component_class_sink_consume_method_status details_consume(bt_self_component_sink *comp) { - bt_component_class_sink_consume_method_status ret = - 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 details_comp *details_comp; @@ -471,54 +438,40 @@ details_consume(bt_self_component_sink *comp) BT_ASSERT_DBG(details_comp->msg_iter); /* Consume messages */ - next_status = bt_self_component_port_input_message_iterator_next( + next_status = bt_message_iterator_next( details_comp->msg_iter, &msgs, &count); - switch (next_status) { - case BT_MESSAGE_ITERATOR_NEXT_STATUS_OK: - ret = BT_COMPONENT_CLASS_SINK_CONSUME_METHOD_STATUS_OK; - - for (i = 0; i < count; i++) { - int print_ret = details_write_message(details_comp, - msgs[i]); - - if (print_ret) { - for (; i < count; i++) { - /* Put all remaining messages */ - bt_message_put_ref(msgs[i]); - } + if (next_status != BT_MESSAGE_ITERATOR_NEXT_STATUS_OK) { + status = (int) next_status; + goto end; + } - ret = BT_COMPONENT_CLASS_SINK_CONSUME_METHOD_STATUS_ERROR; - goto end; - } + for (i = 0; i < count; i++) { + int print_ret = details_write_message(details_comp, + msgs[i]); - /* Print output buffer to standard output and flush */ - if (details_comp->str->len > 0) { - printf("%s", details_comp->str->str); - fflush(stdout); - details_comp->printed_something = true; + if (print_ret) { + for (; i < count; i++) { + /* Put all remaining messages */ + bt_message_put_ref(msgs[i]); } - /* Put this message */ - bt_message_put_ref(msgs[i]); + status = BT_COMPONENT_CLASS_SINK_CONSUME_METHOD_STATUS_ERROR; + goto end; } - break; - case BT_MESSAGE_ITERATOR_NEXT_STATUS_AGAIN: - ret = BT_COMPONENT_CLASS_SINK_CONSUME_METHOD_STATUS_AGAIN; - goto end; - case BT_MESSAGE_ITERATOR_NEXT_STATUS_END: - ret = BT_COMPONENT_CLASS_SINK_CONSUME_METHOD_STATUS_END; - goto end; - case BT_MESSAGE_ITERATOR_NEXT_STATUS_ERROR: - ret = BT_COMPONENT_CLASS_SINK_CONSUME_METHOD_STATUS_ERROR; - goto end; - case BT_MESSAGE_ITERATOR_NEXT_STATUS_MEMORY_ERROR: - ret = BT_COMPONENT_CLASS_SINK_CONSUME_METHOD_STATUS_MEMORY_ERROR; - goto end; - default: - abort(); + /* Print output buffer to standard output and flush */ + if (details_comp->str->len > 0) { + printf("%s", details_comp->str->str); + fflush(stdout); + details_comp->printed_something = true; + } + + /* Put this message */ + bt_message_put_ref(msgs[i]); } + status = BT_COMPONENT_CLASS_SINK_CONSUME_METHOD_STATUS_OK; + end: - return ret; + return status; }