X-Git-Url: http://git.efficios.com/?a=blobdiff_plain;ds=sidebyside;f=src%2Fplugins%2Ftext%2Fdmesg%2Fdmesg.c;h=4a131ea3c31169ce64f4b26c64d49674053be0df;hb=f2fb1b3297ca0bc13b53189a063b63944be7fae9;hp=f08f83d27c9b85a0c8c0a63d0f8398deaebbbdcc;hpb=188edac1113dbbb29030681dbde2de0ada742499;p=babeltrace.git diff --git a/src/plugins/text/dmesg/dmesg.c b/src/plugins/text/dmesg/dmesg.c index f08f83d2..4a131ea3 100644 --- a/src/plugins/text/dmesg/dmesg.c +++ b/src/plugins/text/dmesg/dmesg.c @@ -24,7 +24,7 @@ #define BT_COMP_LOG_SELF_COMP (dmesg_comp->self_comp) #define BT_LOG_OUTPUT_LEVEL (dmesg_comp->log_level) #define BT_LOG_TAG "PLUGIN/SRC.TEXT.DMESG" -#include "plugins/comp-logging.h" +#include "logging/comp-logging.h" #include #include @@ -55,9 +55,7 @@ struct dmesg_msg_iter { enum { STATE_EMIT_STREAM_BEGINNING, - STATE_EMIT_PACKET_BEGINNING, STATE_EMIT_EVENT, - STATE_EMIT_PACKET_END, STATE_EMIT_STREAM_END, STATE_DONE, } state; @@ -79,7 +77,6 @@ struct dmesg_component { bt_event_class *event_class; bt_trace *trace; bt_stream *stream; - bt_packet *packet; bt_clock_class *clock_class; }; @@ -161,11 +158,6 @@ int create_meta(struct dmesg_component *dmesg_comp, bool has_ts) BT_COMP_LOGE_STR("Cannot set stream class's default clock class."); goto error; } - - bt_stream_class_set_packets_have_beginning_default_clock_snapshot( - dmesg_comp->stream_class, BT_TRUE); - bt_stream_class_set_packets_have_end_default_clock_snapshot( - dmesg_comp->stream_class, BT_TRUE); } dmesg_comp->event_class = bt_event_class_create( @@ -258,7 +250,7 @@ end: } static -int create_packet_and_stream_and_trace(struct dmesg_component *dmesg_comp) +int create_stream_and_trace(struct dmesg_component *dmesg_comp) { int ret = 0; const char *trace_name = NULL; @@ -298,28 +290,19 @@ int create_packet_and_stream_and_trace(struct dmesg_component *dmesg_comp) goto error; } - dmesg_comp->packet = bt_packet_create(dmesg_comp->stream); - if (!dmesg_comp->packet) { - BT_COMP_LOGE_STR("Cannot create packet object."); - goto error; - } - goto end; error: ret = -1; end: - if (basename) { - g_free(basename); - } + g_free(basename); return ret; } static -int try_create_meta_stream_packet(struct dmesg_component *dmesg_comp, - bool has_ts) +int try_create_meta_stream(struct dmesg_component *dmesg_comp, bool has_ts) { int ret = 0; @@ -335,9 +318,9 @@ int try_create_meta_stream_packet(struct dmesg_component *dmesg_comp, goto error; } - ret = create_packet_and_stream_and_trace(dmesg_comp); + ret = create_stream_and_trace(dmesg_comp); if (ret) { - BT_COMP_LOGE("Cannot create packet and stream objects: " + BT_COMP_LOGE("Cannot create stream object: " "dmesg-comp-addr=%p", dmesg_comp); goto error; } @@ -362,7 +345,6 @@ void destroy_dmesg_component(struct dmesg_component *dmesg_comp) g_string_free(dmesg_comp->params.path, TRUE); } - bt_packet_put_ref(dmesg_comp->packet); bt_trace_put_ref(dmesg_comp->trace); bt_stream_class_put_ref(dmesg_comp->stream_class); bt_event_class_put_ref(dmesg_comp->event_class); @@ -539,22 +521,22 @@ skip_ts: /* * At this point, we know if the stream class's event header * field class should have a timestamp or not, so we can lazily - * create the metadata, stream, and packet objects. + * create the metadata and stream objects. */ - ret = try_create_meta_stream_packet(dmesg_comp, has_timestamp); + ret = try_create_meta_stream(dmesg_comp, has_timestamp); if (ret) { - /* try_create_meta_stream_packet() logs errors */ + /* try_create_meta_stream() logs errors */ goto error; } if (dmesg_comp->clock_class) { msg = bt_message_event_create_with_default_clock_snapshot( msg_iter->pc_msg_iter, - dmesg_comp->event_class, dmesg_comp->packet, ts); + dmesg_comp->event_class, dmesg_comp->stream, ts); msg_iter->last_clock_value = ts; } else { msg = bt_message_event_create(msg_iter->pc_msg_iter, - dmesg_comp->event_class, dmesg_comp->packet); + dmesg_comp->event_class, dmesg_comp->stream); } if (!msg) { @@ -652,12 +634,14 @@ end: static void destroy_dmesg_msg_iter(struct dmesg_msg_iter *dmesg_msg_iter) { - struct dmesg_component *dmesg_comp = dmesg_msg_iter->dmesg_comp; + struct dmesg_component *dmesg_comp; if (!dmesg_msg_iter) { return; } + dmesg_comp = dmesg_msg_iter->dmesg_comp; + if (dmesg_msg_iter->fp && dmesg_msg_iter->fp != stdin) { if (fclose(dmesg_msg_iter->fp)) { BT_COMP_LOGE_ERRNO("Cannot close input file", "."); @@ -747,7 +731,6 @@ bt_component_class_message_iterator_next_method_status dmesg_msg_iter_next_one( } if (dmesg_msg_iter->tmp_event_msg || - dmesg_msg_iter->state == STATE_EMIT_PACKET_END || dmesg_msg_iter->state == STATE_EMIT_STREAM_END) { goto handle_state; } @@ -769,9 +752,9 @@ bt_component_class_message_iterator_next_method_status dmesg_msg_iter_next_one( status = BT_COMPONENT_CLASS_MESSAGE_ITERATOR_NEXT_METHOD_STATUS_END; goto end; } else { - /* End current packet now */ + /* End stream now */ dmesg_msg_iter->state = - STATE_EMIT_PACKET_END; + STATE_EMIT_STREAM_END; goto handle_state; } } @@ -811,20 +794,6 @@ handle_state: BT_ASSERT(dmesg_msg_iter->tmp_event_msg); *msg = bt_message_stream_beginning_create( dmesg_msg_iter->pc_msg_iter, dmesg_comp->stream); - dmesg_msg_iter->state = STATE_EMIT_PACKET_BEGINNING; - break; - case STATE_EMIT_PACKET_BEGINNING: - BT_ASSERT(dmesg_msg_iter->tmp_event_msg); - - if (dmesg_comp->clock_class) { - *msg = bt_message_packet_beginning_create_with_default_clock_snapshot( - dmesg_msg_iter->pc_msg_iter, dmesg_comp->packet, - dmesg_msg_iter->last_clock_value); - } else { - *msg = bt_message_packet_beginning_create( - dmesg_msg_iter->pc_msg_iter, dmesg_comp->packet); - } - dmesg_msg_iter->state = STATE_EMIT_EVENT; break; case STATE_EMIT_EVENT: @@ -832,18 +801,6 @@ handle_state: *msg = dmesg_msg_iter->tmp_event_msg; dmesg_msg_iter->tmp_event_msg = NULL; break; - case STATE_EMIT_PACKET_END: - if (dmesg_comp->clock_class) { - *msg = bt_message_packet_end_create_with_default_clock_snapshot( - dmesg_msg_iter->pc_msg_iter, dmesg_comp->packet, - dmesg_msg_iter->last_clock_value); - } else { - *msg = bt_message_packet_end_create( - dmesg_msg_iter->pc_msg_iter, dmesg_comp->packet); - } - - dmesg_msg_iter->state = STATE_EMIT_STREAM_END; - break; case STATE_EMIT_STREAM_END: *msg = bt_message_stream_end_create( dmesg_msg_iter->pc_msg_iter, dmesg_comp->stream); @@ -909,14 +866,17 @@ bt_component_class_message_iterator_next_method_status dmesg_msg_iter_next( } BT_HIDDEN -bt_bool dmesg_msg_iter_can_seek_beginning( - bt_self_message_iterator *self_msg_iter) +bt_component_class_message_iterator_can_seek_beginning_method_status +dmesg_msg_iter_can_seek_beginning( + bt_self_message_iterator *self_msg_iter, bt_bool *can_seek) { struct dmesg_msg_iter *dmesg_msg_iter = bt_self_message_iterator_get_data(self_msg_iter); /* Can't seek the beginning of the standard input stream */ - return !dmesg_msg_iter->dmesg_comp->params.read_from_stdin; + *can_seek = !dmesg_msg_iter->dmesg_comp->params.read_from_stdin; + + return BT_COMPONENT_CLASS_MESSAGE_ITERATOR_CAN_SEEK_BEGINNING_METHOD_STATUS_OK; } BT_HIDDEN