X-Git-Url: http://git.efficios.com/?a=blobdiff_plain;f=src%2Fplugins%2Futils%2Ftrimmer%2Ftrimmer.c;h=68230d5ef440f2e2f1159b53b739781412fd7544;hb=495dd92c70d1eeb6c46af0377ecffae6c0aed8d8;hp=892781d098a1fdd0e8255908932330efe37fd1aa;hpb=c4f23e30bf67d2523163614bc9461d84cbe1ae80;p=babeltrace.git diff --git a/src/plugins/utils/trimmer/trimmer.c b/src/plugins/utils/trimmer/trimmer.c index 892781d0..68230d5e 100644 --- a/src/plugins/utils/trimmer/trimmer.c +++ b/src/plugins/utils/trimmer/trimmer.c @@ -1,24 +1,8 @@ /* + * SPDX-License-Identifier: MIT + * * Copyright 2016 Jérémie Galarneau * 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. - * - * 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. */ #define BT_LOG_OUTPUT_LEVEL (trimmer_comp->log_level) @@ -76,6 +60,7 @@ struct trimmer_comp { bool is_gmt; bt_logging_level log_level; bt_self_component *self_comp; + bt_self_component_filter *self_comp_filter; }; enum trimmer_iterator_state { @@ -113,7 +98,7 @@ struct trimmer_iterator { enum trimmer_iterator_state state; /* Owned by this */ - bt_self_component_port_input_message_iterator *upstream_iter; + bt_message_iterator *upstream_iter; struct trimmer_bound begin, end; /* @@ -428,6 +413,8 @@ int set_bound_from_str(struct trimmer_comp *trimmer_comp, ret = -1; end: + g_match_info_free(match_info); + return ret; } @@ -453,7 +440,7 @@ int set_bound_from_param(struct trimmer_comp *trimmer_comp, * Just convert it to a temporary string to handle * everything the same way. */ - sprintf(tmp_arg, "%" PRId64, value); + snprintf(tmp_arg, sizeof(tmp_arg), "%" PRId64, value); arg = tmp_arg; } else { BT_ASSERT(bt_value_is_string(param)); @@ -527,6 +514,7 @@ enum bt_param_validation_status validate_bound_type( return status; } +static struct bt_param_validation_map_value_entry_descr trimmer_params[] = { { "gmt", BT_PARAM_VALIDATION_MAP_VALUE_ENTRY_OPTIONAL, { .type = BT_VALUE_TYPE_BOOL } }, { "begin", BT_PARAM_VALIDATION_MAP_VALUE_ENTRY_OPTIONAL, { .validation_func = validate_bound_type } }, @@ -624,6 +612,7 @@ bt_component_class_initialize_method_status trimmer_init( trimmer_comp->log_level = bt_component_get_logging_level( bt_self_component_as_component(self_comp)); trimmer_comp->self_comp = self_comp; + trimmer_comp->self_comp_filter = self_comp_flt; add_port_status = bt_self_component_filter_add_input_port( self_comp_flt, in_port_name, NULL, NULL); @@ -665,7 +654,7 @@ void destroy_trimmer_iterator(struct trimmer_iterator *trimmer_it) goto end; } - bt_self_component_port_input_message_iterator_put_ref( + bt_message_iterator_put_ref( trimmer_it->upstream_iter); if (trimmer_it->output_messages) { @@ -691,25 +680,25 @@ void destroy_trimmer_iterator_stream_state( } BT_HIDDEN -bt_component_class_message_iterator_initialize_method_status trimmer_msg_iter_init( +bt_message_iterator_class_initialize_method_status trimmer_msg_iter_init( bt_self_message_iterator *self_msg_iter, bt_self_message_iterator_configuration *config, - bt_self_component_filter *self_comp, bt_self_component_port_output *port) { - bt_component_class_message_iterator_initialize_method_status status; - bt_self_component_port_input_message_iterator_create_from_message_iterator_status + bt_message_iterator_class_initialize_method_status status; + bt_message_iterator_create_from_message_iterator_status msg_iter_status; struct trimmer_iterator *trimmer_it; + bt_self_component *self_comp = + bt_self_message_iterator_borrow_component(self_msg_iter); trimmer_it = g_new0(struct trimmer_iterator, 1); if (!trimmer_it) { - status = BT_COMPONENT_CLASS_MESSAGE_ITERATOR_INITIALIZE_METHOD_STATUS_MEMORY_ERROR; + status = BT_MESSAGE_ITERATOR_CLASS_INITIALIZE_METHOD_STATUS_MEMORY_ERROR; goto error; } - trimmer_it->trimmer_comp = bt_self_component_get_data( - bt_self_component_filter_as_self_component(self_comp)); + trimmer_it->trimmer_comp = bt_self_component_get_data(self_comp); BT_ASSERT(trimmer_it->trimmer_comp); if (trimmer_it->trimmer_comp->begin.is_set && @@ -726,18 +715,19 @@ bt_component_class_message_iterator_initialize_method_status trimmer_msg_iter_in trimmer_it->begin = trimmer_it->trimmer_comp->begin; trimmer_it->end = trimmer_it->trimmer_comp->end; msg_iter_status = - bt_self_component_port_input_message_iterator_create_from_message_iterator( + bt_message_iterator_create_from_message_iterator( self_msg_iter, bt_self_component_filter_borrow_input_port_by_name( - self_comp, in_port_name), &trimmer_it->upstream_iter); - if (msg_iter_status != BT_SELF_COMPONENT_PORT_INPUT_MESSAGE_ITERATOR_CREATE_FROM_MESSAGE_ITERATOR_STATUS_OK) { + trimmer_it->trimmer_comp->self_comp_filter, in_port_name), + &trimmer_it->upstream_iter); + if (msg_iter_status != BT_MESSAGE_ITERATOR_CREATE_FROM_MESSAGE_ITERATOR_STATUS_OK) { status = (int) msg_iter_status; goto error; } trimmer_it->output_messages = g_queue_new(); if (!trimmer_it->output_messages) { - status = BT_COMPONENT_CLASS_MESSAGE_ITERATOR_INITIALIZE_METHOD_STATUS_MEMORY_ERROR; + status = BT_MESSAGE_ITERATOR_CLASS_INITIALIZE_METHOD_STATUS_MEMORY_ERROR; goto error; } @@ -745,7 +735,7 @@ bt_component_class_message_iterator_initialize_method_status trimmer_msg_iter_in g_direct_equal, NULL, (GDestroyNotify) destroy_trimmer_iterator_stream_state); if (!trimmer_it->stream_states) { - status = BT_COMPONENT_CLASS_MESSAGE_ITERATOR_INITIALIZE_METHOD_STATUS_MEMORY_ERROR; + status = BT_MESSAGE_ITERATOR_CLASS_INITIALIZE_METHOD_STATUS_MEMORY_ERROR; goto error; } @@ -759,7 +749,7 @@ bt_component_class_message_iterator_initialize_method_status trimmer_msg_iter_in trimmer_it->self_msg_iter = self_msg_iter; bt_self_message_iterator_set_data(self_msg_iter, trimmer_it); - status = BT_COMPONENT_CLASS_MESSAGE_ITERATOR_INITIALIZE_METHOD_STATUS_OK; + status = BT_MESSAGE_ITERATOR_CLASS_INITIALIZE_METHOD_STATUS_OK; goto end; error: @@ -794,27 +784,33 @@ int get_msg_ns_from_origin(const bt_message *msg, int64_t *ns_from_origin, msg); break; case BT_MESSAGE_TYPE_PACKET_BEGINNING: - clock_class = - bt_message_packet_beginning_borrow_stream_class_default_clock_class_const( - msg); - if (G_UNLIKELY(!clock_class)) { - goto error; + { + const bt_packet *packet = bt_message_packet_beginning_borrow_packet_const(msg); + const bt_stream *stream = bt_packet_borrow_stream_const(packet); + const bt_stream_class *stream_class = bt_stream_borrow_class_const(stream); + + if (!bt_stream_class_packets_have_beginning_default_clock_snapshot(stream_class)) { + goto no_clock_snapshot; } clock_snapshot = bt_message_packet_beginning_borrow_default_clock_snapshot_const( msg); break; + } case BT_MESSAGE_TYPE_PACKET_END: - clock_class = - bt_message_packet_end_borrow_stream_class_default_clock_class_const( - msg); - if (G_UNLIKELY(!clock_class)) { - goto error; + { + const bt_packet *packet = bt_message_packet_end_borrow_packet_const(msg); + const bt_stream *stream = bt_packet_borrow_stream_const(packet); + const bt_stream_class *stream_class = bt_stream_borrow_class_const(stream); + + if (!bt_stream_class_packets_have_end_default_clock_snapshot(stream_class)) { + goto no_clock_snapshot; } clock_snapshot = bt_message_packet_end_borrow_default_clock_snapshot_const( msg); break; + } case BT_MESSAGE_TYPE_STREAM_BEGINNING: { enum bt_message_stream_clock_snapshot_state cs_state; @@ -850,30 +846,34 @@ int get_msg_ns_from_origin(const bt_message *msg, int64_t *ns_from_origin, break; } case BT_MESSAGE_TYPE_DISCARDED_EVENTS: - clock_class = - bt_message_discarded_events_borrow_stream_class_default_clock_class_const( - msg); - if (G_UNLIKELY(!clock_class)) { - goto error; + { + const bt_stream *stream = bt_message_discarded_events_borrow_stream_const(msg); + const bt_stream_class *stream_class = bt_stream_borrow_class_const(stream); + + if (!bt_stream_class_discarded_events_have_default_clock_snapshots(stream_class)) { + goto no_clock_snapshot; } clock_snapshot = bt_message_discarded_events_borrow_beginning_default_clock_snapshot_const( msg); break; + } case BT_MESSAGE_TYPE_DISCARDED_PACKETS: - clock_class = - bt_message_discarded_packets_borrow_stream_class_default_clock_class_const( - msg); - if (G_UNLIKELY(!clock_class)) { - goto error; + { + const bt_stream *stream = bt_message_discarded_packets_borrow_stream_const(msg); + const bt_stream_class *stream_class = bt_stream_borrow_class_const(stream); + + if (!bt_stream_class_discarded_packets_have_default_clock_snapshots(stream_class)) { + goto no_clock_snapshot; } clock_snapshot = bt_message_discarded_packets_borrow_beginning_default_clock_snapshot_const( msg); break; + } case BT_MESSAGE_TYPE_MESSAGE_ITERATOR_INACTIVITY: clock_snapshot = - bt_message_message_iterator_inactivity_borrow_default_clock_snapshot_const( + bt_message_message_iterator_inactivity_borrow_clock_snapshot_const( msg); break; default: @@ -948,7 +948,7 @@ end: } static -bt_component_class_message_iterator_next_method_status +bt_message_iterator_class_next_method_status state_set_trimmer_iterator_bounds( struct trimmer_iterator *trimmer_it) { @@ -966,7 +966,7 @@ state_set_trimmer_iterator_bounds( while (true) { upstream_iter_status = - bt_self_component_port_input_message_iterator_next( + bt_message_iterator_next( trimmer_it->upstream_iter, &msgs, &count); if (upstream_iter_status != BT_MESSAGE_ITERATOR_NEXT_STATUS_OK) { goto end; @@ -1030,20 +1030,20 @@ end: } static -bt_component_class_message_iterator_next_method_status state_seek_initially( +bt_message_iterator_class_next_method_status state_seek_initially( struct trimmer_iterator *trimmer_it) { struct trimmer_comp *trimmer_comp = trimmer_it->trimmer_comp; - bt_component_class_message_iterator_next_method_status status; + bt_message_iterator_class_next_method_status status; BT_ASSERT(trimmer_it->begin.is_set); if (trimmer_it->begin.is_infinite) { bt_bool can_seek; - status = (int) bt_self_component_port_input_message_iterator_can_seek_beginning( + status = (int) bt_message_iterator_can_seek_beginning( trimmer_it->upstream_iter, &can_seek); - if (status != BT_COMPONENT_CLASS_MESSAGE_ITERATOR_NEXT_METHOD_STATUS_OK) { + if (status != BT_MESSAGE_ITERATOR_CLASS_NEXT_METHOD_STATUS_OK) { if (status < 0) { BT_COMP_LOGE_APPEND_CAUSE(trimmer_comp->self_comp, "Cannot make upstream message iterator initially seek its beginning."); @@ -1055,20 +1055,20 @@ bt_component_class_message_iterator_next_method_status state_seek_initially( if (!can_seek) { BT_COMP_LOGE_APPEND_CAUSE(trimmer_comp->self_comp, "Cannot make upstream message iterator initially seek its beginning."); - status = BT_COMPONENT_CLASS_MESSAGE_ITERATOR_NEXT_METHOD_STATUS_ERROR; + status = BT_MESSAGE_ITERATOR_CLASS_NEXT_METHOD_STATUS_ERROR; goto end; } - status = (int) bt_self_component_port_input_message_iterator_seek_beginning( + status = (int) bt_message_iterator_seek_beginning( trimmer_it->upstream_iter); } else { bt_bool can_seek; - status = (int) bt_self_component_port_input_message_iterator_can_seek_ns_from_origin( + status = (int) bt_message_iterator_can_seek_ns_from_origin( trimmer_it->upstream_iter, trimmer_it->begin.ns_from_origin, &can_seek); - if (status != BT_COMPONENT_CLASS_MESSAGE_ITERATOR_NEXT_METHOD_STATUS_OK) { + if (status != BT_MESSAGE_ITERATOR_CLASS_NEXT_METHOD_STATUS_OK) { if (status < 0) { BT_COMP_LOGE_APPEND_CAUSE(trimmer_comp->self_comp, "Cannot make upstream message iterator initially seek: seek-ns-from-origin=%" PRId64, @@ -1082,15 +1082,15 @@ bt_component_class_message_iterator_next_method_status state_seek_initially( BT_COMP_LOGE_APPEND_CAUSE(trimmer_comp->self_comp, "Cannot make upstream message iterator initially seek: seek-ns-from-origin=%" PRId64, trimmer_it->begin.ns_from_origin); - status = BT_COMPONENT_CLASS_MESSAGE_ITERATOR_NEXT_METHOD_STATUS_ERROR; + status = BT_MESSAGE_ITERATOR_CLASS_NEXT_METHOD_STATUS_ERROR; goto end; } - status = (int) bt_self_component_port_input_message_iterator_seek_ns_from_origin( + status = (int) bt_message_iterator_seek_ns_from_origin( trimmer_it->upstream_iter, trimmer_it->begin.ns_from_origin); } - if (status == BT_COMPONENT_CLASS_MESSAGE_ITERATOR_NEXT_METHOD_STATUS_OK) { + if (status == BT_MESSAGE_ITERATOR_CLASS_NEXT_METHOD_STATUS_OK) { trimmer_it->state = TRIMMER_ITERATOR_STATE_TRIM; } @@ -1126,12 +1126,12 @@ int clock_raw_value_from_ns_from_origin(const bt_clock_class *clock_class, } static inline -bt_component_class_message_iterator_next_method_status +bt_message_iterator_class_next_method_status end_stream(struct trimmer_iterator *trimmer_it, struct trimmer_iterator_stream_state *sstate) { - bt_component_class_message_iterator_next_method_status status = - BT_COMPONENT_CLASS_MESSAGE_ITERATOR_NEXT_METHOD_STATUS_OK; + bt_message_iterator_class_next_method_status status = + BT_MESSAGE_ITERATOR_CLASS_NEXT_METHOD_STATUS_OK; /* Initialize to silence maybe-uninitialized warning. */ uint64_t raw_value = 0; bt_message *msg = NULL; @@ -1159,7 +1159,7 @@ end_stream(struct trimmer_iterator *trimmer_it, ret = clock_raw_value_from_ns_from_origin(clock_class, trimmer_it->end.ns_from_origin, &raw_value); if (ret) { - status = BT_COMPONENT_CLASS_MESSAGE_ITERATOR_NEXT_METHOD_STATUS_ERROR; + status = BT_MESSAGE_ITERATOR_CLASS_NEXT_METHOD_STATUS_ERROR; goto end; } } @@ -1180,7 +1180,7 @@ end_stream(struct trimmer_iterator *trimmer_it, trimmer_it->self_msg_iter, sstate->cur_packet, raw_value); if (!msg) { - status = BT_COMPONENT_CLASS_MESSAGE_ITERATOR_NEXT_METHOD_STATUS_MEMORY_ERROR; + status = BT_MESSAGE_ITERATOR_CLASS_NEXT_METHOD_STATUS_MEMORY_ERROR; goto end; } @@ -1193,7 +1193,7 @@ end_stream(struct trimmer_iterator *trimmer_it, msg = bt_message_stream_end_create(trimmer_it->self_msg_iter, sstate->stream); if (!msg) { - status = BT_COMPONENT_CLASS_MESSAGE_ITERATOR_NEXT_METHOD_STATUS_MEMORY_ERROR; + status = BT_MESSAGE_ITERATOR_CLASS_NEXT_METHOD_STATUS_MEMORY_ERROR; goto end; } @@ -1216,11 +1216,11 @@ end: } static inline -bt_component_class_message_iterator_next_method_status end_iterator_streams( +bt_message_iterator_class_next_method_status end_iterator_streams( struct trimmer_iterator *trimmer_it) { - bt_component_class_message_iterator_next_method_status status = - BT_COMPONENT_CLASS_MESSAGE_ITERATOR_NEXT_METHOD_STATUS_OK; + bt_message_iterator_class_next_method_status status = + BT_MESSAGE_ITERATOR_CLASS_NEXT_METHOD_STATUS_OK; GHashTableIter iter; gpointer key, sstate; @@ -1254,14 +1254,14 @@ end: } static -bt_component_class_message_iterator_next_method_status +bt_message_iterator_class_next_method_status create_stream_state_entry( struct trimmer_iterator *trimmer_it, const struct bt_stream *stream, struct trimmer_iterator_stream_state **stream_state) { struct trimmer_comp *trimmer_comp = trimmer_it->trimmer_comp; - bt_component_class_message_iterator_next_method_status status; + bt_message_iterator_class_next_method_status status; struct trimmer_iterator_stream_state *sstate; const bt_stream_class *sc; @@ -1287,7 +1287,7 @@ create_stream_state_entry( "stream-name=\"%s\"", stream, bt_stream_get_id(stream), bt_stream_get_name(stream)); - status = BT_COMPONENT_CLASS_MESSAGE_ITERATOR_NEXT_METHOD_STATUS_ERROR; + status = BT_MESSAGE_ITERATOR_CLASS_NEXT_METHOD_STATUS_ERROR; goto end; } @@ -1298,30 +1298,46 @@ create_stream_state_entry( * the support for not having them is * implemented. */ - if (!bt_stream_class_packets_have_beginning_default_clock_snapshot( - sc)) { - BT_COMP_LOGE_APPEND_CAUSE(trimmer_comp->self_comp, - "Unsupported stream: packets have no beginning clock snapshot: " - "stream-addr=%p, " - "stream-id=%" PRIu64 ", " - "stream-name=\"%s\"", - stream, bt_stream_get_id(stream), - bt_stream_get_name(stream)); - status = BT_COMPONENT_CLASS_MESSAGE_ITERATOR_NEXT_METHOD_STATUS_ERROR; - goto end; - } + if (bt_stream_class_supports_packets(sc)) { + if (!bt_stream_class_packets_have_beginning_default_clock_snapshot( + sc)) { + BT_COMP_LOGE_APPEND_CAUSE(trimmer_comp->self_comp, + "Unsupported stream: packets have no beginning clock snapshot: " + "stream-addr=%p, " + "stream-id=%" PRIu64 ", " + "stream-name=\"%s\"", + stream, bt_stream_get_id(stream), + bt_stream_get_name(stream)); + status = BT_MESSAGE_ITERATOR_CLASS_NEXT_METHOD_STATUS_ERROR; + goto end; + } - if (!bt_stream_class_packets_have_end_default_clock_snapshot( - sc)) { - BT_COMP_LOGE_APPEND_CAUSE(trimmer_comp->self_comp, - "Unsupported stream: packets have no end clock snapshot: " - "stream-addr=%p, " - "stream-id=%" PRIu64 ", " - "stream-name=\"%s\"", - stream, bt_stream_get_id(stream), - bt_stream_get_name(stream)); - status = BT_COMPONENT_CLASS_MESSAGE_ITERATOR_NEXT_METHOD_STATUS_ERROR; - goto end; + if (!bt_stream_class_packets_have_end_default_clock_snapshot( + sc)) { + BT_COMP_LOGE_APPEND_CAUSE(trimmer_comp->self_comp, + "Unsupported stream: packets have no end clock snapshot: " + "stream-addr=%p, " + "stream-id=%" PRIu64 ", " + "stream-name=\"%s\"", + stream, bt_stream_get_id(stream), + bt_stream_get_name(stream)); + status = BT_MESSAGE_ITERATOR_CLASS_NEXT_METHOD_STATUS_ERROR; + goto end; + } + + if (bt_stream_class_supports_discarded_packets(sc) && + !bt_stream_class_discarded_packets_have_default_clock_snapshots(sc)) { + BT_COMP_LOGE_APPEND_CAUSE(trimmer_comp->self_comp, + "Unsupported stream: discarded packets " + "have no clock snapshots: " + "stream-addr=%p, " + "stream-id=%" PRIu64 ", " + "stream-name=\"%s\"", + stream, bt_stream_get_id(stream), + bt_stream_get_name(stream)); + status = BT_MESSAGE_ITERATOR_CLASS_NEXT_METHOD_STATUS_ERROR; + goto end; + } } if (bt_stream_class_supports_discarded_events(sc) && @@ -1333,27 +1349,13 @@ create_stream_state_entry( "stream-name=\"%s\"", stream, bt_stream_get_id(stream), bt_stream_get_name(stream)); - status = BT_COMPONENT_CLASS_MESSAGE_ITERATOR_NEXT_METHOD_STATUS_ERROR; - goto end; - } - - if (bt_stream_class_supports_discarded_packets(sc) && - !bt_stream_class_discarded_packets_have_default_clock_snapshots(sc)) { - BT_COMP_LOGE_APPEND_CAUSE(trimmer_comp->self_comp, - "Unsupported stream: discarded packets " - "have no clock snapshots: " - "stream-addr=%p, " - "stream-id=%" PRIu64 ", " - "stream-name=\"%s\"", - stream, bt_stream_get_id(stream), - bt_stream_get_name(stream)); - status = BT_COMPONENT_CLASS_MESSAGE_ITERATOR_NEXT_METHOD_STATUS_ERROR; + status = BT_MESSAGE_ITERATOR_CLASS_NEXT_METHOD_STATUS_ERROR; goto end; } sstate = g_new0(struct trimmer_iterator_stream_state, 1); if (!sstate) { - status = BT_COMPONENT_CLASS_MESSAGE_ITERATOR_NEXT_METHOD_STATUS_MEMORY_ERROR; + status = BT_MESSAGE_ITERATOR_CLASS_NEXT_METHOD_STATUS_MEMORY_ERROR; goto end; } @@ -1363,7 +1365,7 @@ create_stream_state_entry( *stream_state = sstate; - status = BT_COMPONENT_CLASS_MESSAGE_ITERATOR_NEXT_METHOD_STATUS_OK; + status = BT_MESSAGE_ITERATOR_CLASS_NEXT_METHOD_STATUS_OK; end: return status; @@ -1400,14 +1402,14 @@ struct trimmer_iterator_stream_state *get_stream_state_entry( * `reached_end`. */ static -bt_component_class_message_iterator_next_method_status +bt_message_iterator_class_next_method_status handle_message_with_stream( struct trimmer_iterator *trimmer_it, const bt_message *msg, const struct bt_stream *stream, const int64_t *ns_from_origin, bool *reached_end) { - bt_component_class_message_iterator_next_method_status status = - BT_COMPONENT_CLASS_MESSAGE_ITERATOR_NEXT_METHOD_STATUS_OK; + bt_message_iterator_class_next_method_status status = + BT_MESSAGE_ITERATOR_CLASS_NEXT_METHOD_STATUS_OK; bt_message_type msg_type = bt_message_get_type(msg); int ret; struct trimmer_iterator_stream_state *sstate = NULL; @@ -1527,7 +1529,7 @@ handle_message_with_stream( if (bt_clock_snapshot_get_ns_from_origin(end_cs, &end_ns_from_origin)) { - status = BT_COMPONENT_CLASS_MESSAGE_ITERATOR_NEXT_METHOD_STATUS_ERROR; + status = BT_MESSAGE_ITERATOR_CLASS_NEXT_METHOD_STATUS_ERROR; goto end; } @@ -1557,7 +1559,7 @@ handle_message_with_stream( ret = clock_raw_value_from_ns_from_origin(clock_class, trimmer_it->end.ns_from_origin, &end_raw_value); if (ret) { - status = BT_COMPONENT_CLASS_MESSAGE_ITERATOR_NEXT_METHOD_STATUS_ERROR; + status = BT_MESSAGE_ITERATOR_CLASS_NEXT_METHOD_STATUS_ERROR; goto end; } @@ -1580,7 +1582,7 @@ handle_message_with_stream( } if (!new_msg) { - status = BT_COMPONENT_CLASS_MESSAGE_ITERATOR_NEXT_METHOD_STATUS_MEMORY_ERROR; + status = BT_MESSAGE_ITERATOR_CLASS_NEXT_METHOD_STATUS_MEMORY_ERROR; goto end; } @@ -1607,7 +1609,7 @@ handle_message_with_stream( /* Learn about this stream. */ status = create_stream_state_entry(trimmer_it, stream, &sstate); - if (status != BT_COMPONENT_CLASS_MESSAGE_ITERATOR_NEXT_METHOD_STATUS_OK) { + if (status != BT_MESSAGE_ITERATOR_CLASS_NEXT_METHOD_STATUS_OK) { goto end; } @@ -1669,11 +1671,11 @@ end: * `reached_end`. */ static inline -bt_component_class_message_iterator_next_method_status handle_message( +bt_message_iterator_class_next_method_status handle_message( struct trimmer_iterator *trimmer_it, const bt_message *msg, bool *reached_end) { - bt_component_class_message_iterator_next_method_status status; + bt_message_iterator_class_next_method_status status; const bt_stream *stream = NULL; int64_t ns_from_origin = INT64_MIN; bool has_ns_from_origin = false; @@ -1712,7 +1714,7 @@ bt_component_class_message_iterator_next_method_status handle_message( /* Retrieve the message's time */ ret = get_msg_ns_from_origin(msg, &ns_from_origin, &has_ns_from_origin); if (G_UNLIKELY(ret)) { - status = BT_COMPONENT_CLASS_MESSAGE_ITERATOR_NEXT_METHOD_STATUS_ERROR; + status = BT_MESSAGE_ITERATOR_CLASS_NEXT_METHOD_STATUS_ERROR; goto end; } @@ -1737,7 +1739,7 @@ bt_component_class_message_iterator_next_method_status handle_message( *reached_end = true; } else { push_message(trimmer_it, msg); - status = BT_COMPONENT_CLASS_MESSAGE_ITERATOR_NEXT_METHOD_STATUS_OK; + status = BT_MESSAGE_ITERATOR_CLASS_NEXT_METHOD_STATUS_OK; msg = NULL; } } @@ -1769,17 +1771,17 @@ void fill_message_array_from_output_messages( } static inline -bt_component_class_message_iterator_next_method_status state_ending( +bt_message_iterator_class_next_method_status state_ending( struct trimmer_iterator *trimmer_it, bt_message_array_const msgs, uint64_t capacity, uint64_t *count) { - bt_component_class_message_iterator_next_method_status status = - BT_COMPONENT_CLASS_MESSAGE_ITERATOR_NEXT_METHOD_STATUS_OK; + bt_message_iterator_class_next_method_status status = + BT_MESSAGE_ITERATOR_CLASS_NEXT_METHOD_STATUS_OK; if (g_queue_is_empty(trimmer_it->output_messages)) { trimmer_it->state = TRIMMER_ITERATOR_STATE_ENDED; - status = BT_COMPONENT_CLASS_MESSAGE_ITERATOR_NEXT_METHOD_STATUS_END; + status = BT_MESSAGE_ITERATOR_CLASS_NEXT_METHOD_STATUS_END; goto end; } @@ -1791,25 +1793,25 @@ end: } static inline -bt_component_class_message_iterator_next_method_status +bt_message_iterator_class_next_method_status state_trim(struct trimmer_iterator *trimmer_it, bt_message_array_const msgs, uint64_t capacity, uint64_t *count) { - bt_component_class_message_iterator_next_method_status status = - BT_COMPONENT_CLASS_MESSAGE_ITERATOR_NEXT_METHOD_STATUS_OK; + bt_message_iterator_class_next_method_status status = + BT_MESSAGE_ITERATOR_CLASS_NEXT_METHOD_STATUS_OK; bt_message_array_const my_msgs; uint64_t my_count; uint64_t i; bool reached_end = false; while (g_queue_is_empty(trimmer_it->output_messages)) { - status = (int) bt_self_component_port_input_message_iterator_next( + status = (int) bt_message_iterator_next( trimmer_it->upstream_iter, &my_msgs, &my_count); - if (G_UNLIKELY(status != BT_COMPONENT_CLASS_MESSAGE_ITERATOR_NEXT_METHOD_STATUS_OK)) { - if (status == BT_COMPONENT_CLASS_MESSAGE_ITERATOR_NEXT_METHOD_STATUS_END) { + if (G_UNLIKELY(status != BT_MESSAGE_ITERATOR_CLASS_NEXT_METHOD_STATUS_OK)) { + if (status == BT_MESSAGE_ITERATOR_CLASS_NEXT_METHOD_STATUS_END) { status = end_iterator_streams(trimmer_it); - if (status != BT_COMPONENT_CLASS_MESSAGE_ITERATOR_NEXT_METHOD_STATUS_OK) { + if (status != BT_MESSAGE_ITERATOR_CLASS_NEXT_METHOD_STATUS_OK) { goto end; } @@ -1835,7 +1837,7 @@ state_trim(struct trimmer_iterator *trimmer_it, my_msgs[i] = NULL; if (G_UNLIKELY(status != - BT_COMPONENT_CLASS_MESSAGE_ITERATOR_NEXT_METHOD_STATUS_OK)) { + BT_MESSAGE_ITERATOR_CLASS_NEXT_METHOD_STATUS_OK)) { put_messages(my_msgs, my_count); goto end; } @@ -1874,50 +1876,50 @@ end: } BT_HIDDEN -bt_component_class_message_iterator_next_method_status trimmer_msg_iter_next( +bt_message_iterator_class_next_method_status trimmer_msg_iter_next( bt_self_message_iterator *self_msg_iter, bt_message_array_const msgs, uint64_t capacity, uint64_t *count) { struct trimmer_iterator *trimmer_it = bt_self_message_iterator_get_data(self_msg_iter); - bt_component_class_message_iterator_next_method_status status = - BT_COMPONENT_CLASS_MESSAGE_ITERATOR_NEXT_METHOD_STATUS_OK; + bt_message_iterator_class_next_method_status status = + BT_MESSAGE_ITERATOR_CLASS_NEXT_METHOD_STATUS_OK; BT_ASSERT_DBG(trimmer_it); if (G_LIKELY(trimmer_it->state == TRIMMER_ITERATOR_STATE_TRIM)) { status = state_trim(trimmer_it, msgs, capacity, count); - if (status != BT_COMPONENT_CLASS_MESSAGE_ITERATOR_NEXT_METHOD_STATUS_OK) { + if (status != BT_MESSAGE_ITERATOR_CLASS_NEXT_METHOD_STATUS_OK) { goto end; } } else { switch (trimmer_it->state) { case TRIMMER_ITERATOR_STATE_SET_BOUNDS_NS_FROM_ORIGIN: status = state_set_trimmer_iterator_bounds(trimmer_it); - if (status != BT_COMPONENT_CLASS_MESSAGE_ITERATOR_NEXT_METHOD_STATUS_OK) { + if (status != BT_MESSAGE_ITERATOR_CLASS_NEXT_METHOD_STATUS_OK) { goto end; } status = state_seek_initially(trimmer_it); - if (status != BT_COMPONENT_CLASS_MESSAGE_ITERATOR_NEXT_METHOD_STATUS_OK) { + if (status != BT_MESSAGE_ITERATOR_CLASS_NEXT_METHOD_STATUS_OK) { goto end; } status = state_trim(trimmer_it, msgs, capacity, count); - if (status != BT_COMPONENT_CLASS_MESSAGE_ITERATOR_NEXT_METHOD_STATUS_OK) { + if (status != BT_MESSAGE_ITERATOR_CLASS_NEXT_METHOD_STATUS_OK) { goto end; } break; case TRIMMER_ITERATOR_STATE_SEEK_INITIALLY: status = state_seek_initially(trimmer_it); - if (status != BT_COMPONENT_CLASS_MESSAGE_ITERATOR_NEXT_METHOD_STATUS_OK) { + if (status != BT_MESSAGE_ITERATOR_CLASS_NEXT_METHOD_STATUS_OK) { goto end; } status = state_trim(trimmer_it, msgs, capacity, count); - if (status != BT_COMPONENT_CLASS_MESSAGE_ITERATOR_NEXT_METHOD_STATUS_OK) { + if (status != BT_MESSAGE_ITERATOR_CLASS_NEXT_METHOD_STATUS_OK) { goto end; } @@ -1925,16 +1927,16 @@ bt_component_class_message_iterator_next_method_status trimmer_msg_iter_next( case TRIMMER_ITERATOR_STATE_ENDING: status = state_ending(trimmer_it, msgs, capacity, count); - if (status != BT_COMPONENT_CLASS_MESSAGE_ITERATOR_NEXT_METHOD_STATUS_OK) { + if (status != BT_MESSAGE_ITERATOR_CLASS_NEXT_METHOD_STATUS_OK) { goto end; } break; case TRIMMER_ITERATOR_STATE_ENDED: - status = BT_COMPONENT_CLASS_MESSAGE_ITERATOR_NEXT_METHOD_STATUS_END; + status = BT_MESSAGE_ITERATOR_CLASS_NEXT_METHOD_STATUS_END; break; default: - abort(); + bt_common_abort(); } }