X-Git-Url: http://git.efficios.com/?a=blobdiff_plain;f=src%2Fplugins%2Ftext%2Fdmesg%2Fdmesg.c;h=4a131ea3c31169ce64f4b26c64d49674053be0df;hb=f2fb1b3297ca0bc13b53189a063b63944be7fae9;hp=7ed01cdc2f4dcdf64f88541884d26b8787df4760;hpb=578e048b5debf169e286e5b5cc747b5d6c16886d;p=babeltrace.git diff --git a/src/plugins/text/dmesg/dmesg.c b/src/plugins/text/dmesg/dmesg.c index 7ed01cdc..4a131ea3 100644 --- a/src/plugins/text/dmesg/dmesg.c +++ b/src/plugins/text/dmesg/dmesg.c @@ -21,17 +21,18 @@ * SOFTWARE. */ -#define BT_LOG_TAG "PLUGIN-TEXT-DMESG-SRC" -#include "logging.h" +#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 "logging/comp-logging.h" #include #include #include #include -#include "common/assert.h" #include "common/common.h" +#include "common/assert.h" #include -#include "lib/value.h" #include "compat/utc.h" #include "compat/stdio.h" #include @@ -54,35 +55,34 @@ struct dmesg_msg_iter { enum { STATE_EMIT_STREAM_BEGINNING, - STATE_EMIT_STREAM_ACTIVITY_BEGINNING, - STATE_EMIT_PACKET_BEGINNING, STATE_EMIT_EVENT, - STATE_EMIT_PACKET_END, - STATE_EMIT_STREAM_ACTIVITY_END, STATE_EMIT_STREAM_END, STATE_DONE, } state; }; struct dmesg_component { + bt_logging_level log_level; + struct { GString *path; bt_bool read_from_stdin; bt_bool no_timestamp; } params; - bt_self_component_source *self_comp; + bt_self_component_source *self_comp_src; + bt_self_component *self_comp; bt_trace_class *trace_class; bt_stream_class *stream_class; bt_event_class *event_class; bt_trace *trace; bt_stream *stream; - bt_packet *packet; bt_clock_class *clock_class; }; static -bt_field_class *create_event_payload_fc(bt_trace_class *trace_class) +bt_field_class *create_event_payload_fc(struct dmesg_component *dmesg_comp, + bt_trace_class *trace_class) { bt_field_class *root_fc = NULL; bt_field_class *fc = NULL; @@ -90,20 +90,20 @@ bt_field_class *create_event_payload_fc(bt_trace_class *trace_class) root_fc = bt_field_class_structure_create(trace_class); if (!root_fc) { - BT_LOGE_STR("Cannot create an empty structure field class object."); + BT_COMP_LOGE_STR("Cannot create an empty structure field class object."); goto error; } fc = bt_field_class_string_create(trace_class); if (!fc) { - BT_LOGE_STR("Cannot create a string field class object."); + BT_COMP_LOGE_STR("Cannot create a string field class object."); goto error; } ret = bt_field_class_structure_append_member(root_fc, "str", fc); if (ret) { - BT_LOGE("Cannot add `str` member to structure field class: " + BT_COMP_LOGE("Cannot add `str` member to structure field class: " "ret=%d", ret); goto error; } @@ -124,27 +124,24 @@ int create_meta(struct dmesg_component *dmesg_comp, bool has_ts) bt_field_class *fc = NULL; int ret = 0; - dmesg_comp->trace_class = bt_trace_class_create( - bt_self_component_source_as_self_component( - dmesg_comp->self_comp)); + dmesg_comp->trace_class = bt_trace_class_create(dmesg_comp->self_comp); if (!dmesg_comp->trace_class) { - BT_LOGE_STR("Cannot create an empty trace class object."); + BT_COMP_LOGE_STR("Cannot create an empty trace class object."); goto error; } dmesg_comp->stream_class = bt_stream_class_create( dmesg_comp->trace_class); if (!dmesg_comp->stream_class) { - BT_LOGE_STR("Cannot create a stream class object."); + BT_COMP_LOGE_STR("Cannot create a stream class object."); goto error; } if (has_ts) { dmesg_comp->clock_class = bt_clock_class_create( - bt_self_component_source_as_self_component( - dmesg_comp->self_comp)); + dmesg_comp->self_comp); if (!dmesg_comp->clock_class) { - BT_LOGE_STR("Cannot create clock class."); + BT_COMP_LOGE_STR("Cannot create clock class."); goto error; } @@ -158,38 +155,33 @@ int create_meta(struct dmesg_component *dmesg_comp, bool has_ts) ret = bt_stream_class_set_default_clock_class( dmesg_comp->stream_class, dmesg_comp->clock_class); if (ret) { - BT_LOGE_STR("Cannot set stream class's default clock class."); + 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( dmesg_comp->stream_class); if (!dmesg_comp->event_class) { - BT_LOGE_STR("Cannot create an event class object."); + BT_COMP_LOGE_STR("Cannot create an event class object."); goto error; } ret = bt_event_class_set_name(dmesg_comp->event_class, "string"); if (ret) { - BT_LOGE_STR("Cannot set event class's name."); + BT_COMP_LOGE_STR("Cannot set event class's name."); goto error; } - fc = create_event_payload_fc(dmesg_comp->trace_class); + fc = create_event_payload_fc(dmesg_comp, dmesg_comp->trace_class); if (!fc) { - BT_LOGE_STR("Cannot create event payload field class."); + BT_COMP_LOGE_STR("Cannot create event payload field class."); goto error; } ret = bt_event_class_set_payload_field_class(dmesg_comp->event_class, fc); if (ret) { - BT_LOGE_STR("Cannot set event class's event payload field class."); + BT_COMP_LOGE_STR("Cannot set event class's event payload field class."); goto error; } @@ -216,7 +208,7 @@ int handle_params(struct dmesg_component *dmesg_comp, "no-extract-timestamp"); if (no_timestamp) { if (!bt_value_is_bool(no_timestamp)) { - BT_LOGE("Expecting a boolean value for the `no-extract-timestamp` parameter: " + BT_COMP_LOGE("Expecting a boolean value for the `no-extract-timestamp` parameter: " "type=%s", bt_common_value_type_string( bt_value_get_type(no_timestamp))); @@ -230,12 +222,12 @@ int handle_params(struct dmesg_component *dmesg_comp, path = bt_value_map_borrow_entry_value_const(params, "path"); if (path) { if (dmesg_comp->params.read_from_stdin) { - BT_LOGE_STR("Cannot specify both `read-from-stdin` and `path` parameters."); + BT_COMP_LOGE_STR("Cannot specify both `read-from-stdin` and `path` parameters."); goto error; } if (!bt_value_is_string(path)) { - BT_LOGE("Expecting a string value for the `path` parameter: " + BT_COMP_LOGE("Expecting a string value for the `path` parameter: " "type=%s", bt_common_value_type_string( bt_value_get_type(path))); @@ -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; @@ -266,7 +258,7 @@ int create_packet_and_stream_and_trace(struct dmesg_component *dmesg_comp) dmesg_comp->trace = bt_trace_create(dmesg_comp->trace_class); if (!dmesg_comp->trace) { - BT_LOGE_STR("Cannot create trace object."); + BT_COMP_LOGE_STR("Cannot create trace object."); goto error; } @@ -285,7 +277,7 @@ int create_packet_and_stream_and_trace(struct dmesg_component *dmesg_comp) if (trace_name) { ret = bt_trace_set_name(dmesg_comp->trace, trace_name); if (ret) { - BT_LOGE("Cannot set trace's name: name=\"%s\"", + BT_COMP_LOGE("Cannot set trace's name: name=\"%s\"", trace_name); goto error; } @@ -294,13 +286,7 @@ int create_packet_and_stream_and_trace(struct dmesg_component *dmesg_comp) dmesg_comp->stream = bt_stream_create(dmesg_comp->stream_class, dmesg_comp->trace); if (!dmesg_comp->stream) { - BT_LOGE_STR("Cannot create stream object."); - goto error; - } - - dmesg_comp->packet = bt_packet_create(dmesg_comp->stream); - if (!dmesg_comp->packet) { - BT_LOGE_STR("Cannot create packet object."); + BT_COMP_LOGE_STR("Cannot create stream object."); goto error; } @@ -310,16 +296,13 @@ 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; @@ -330,14 +313,14 @@ int try_create_meta_stream_packet(struct dmesg_component *dmesg_comp, ret = create_meta(dmesg_comp, has_ts); if (ret) { - BT_LOGE("Cannot create metadata objects: dmesg-comp-addr=%p", + BT_COMP_LOGE("Cannot create metadata objects: dmesg-comp-addr=%p", dmesg_comp); goto error; } - ret = create_packet_and_stream_and_trace(dmesg_comp); + ret = create_stream_and_trace(dmesg_comp); if (ret) { - BT_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); @@ -373,67 +355,91 @@ void destroy_dmesg_component(struct dmesg_component *dmesg_comp) } static -bt_self_component_status create_port( +bt_component_class_init_method_status create_port( bt_self_component_source *self_comp) { - return bt_self_component_source_add_output_port(self_comp, + bt_component_class_init_method_status status; + bt_self_component_add_port_status add_port_status; + + add_port_status = bt_self_component_source_add_output_port(self_comp, "out", NULL, NULL); + switch (add_port_status) { + case BT_SELF_COMPONENT_ADD_PORT_STATUS_OK: + status = BT_COMPONENT_CLASS_INIT_METHOD_STATUS_OK; + break; + case BT_SELF_COMPONENT_ADD_PORT_STATUS_ERROR: + status = BT_COMPONENT_CLASS_INIT_METHOD_STATUS_ERROR; + break; + case BT_SELF_COMPONENT_ADD_PORT_STATUS_MEMORY_ERROR: + status = BT_COMPONENT_CLASS_INIT_METHOD_STATUS_MEMORY_ERROR; + break; + default: + abort(); + } + + return status; } BT_HIDDEN -bt_self_component_status dmesg_init( - bt_self_component_source *self_comp, +bt_component_class_init_method_status dmesg_init( + bt_self_component_source *self_comp_src, bt_value *params, void *init_method_data) { int ret = 0; struct dmesg_component *dmesg_comp = g_new0(struct dmesg_component, 1); - bt_self_component_status status = BT_SELF_COMPONENT_STATUS_OK; + bt_component_class_init_method_status status = + BT_COMPONENT_CLASS_INIT_METHOD_STATUS_OK; + bt_self_component *self_comp = + bt_self_component_source_as_self_component(self_comp_src); + const bt_component *comp = bt_self_component_as_component(self_comp); + bt_logging_level log_level = bt_component_get_logging_level(comp); if (!dmesg_comp) { - BT_LOGE_STR("Failed to allocate one dmesg component structure."); + /* Implicit log level is not available here */ + BT_COMP_LOG_CUR_LVL(BT_LOG_ERROR, log_level, self_comp, + "Failed to allocate one dmesg component structure."); goto error; } + dmesg_comp->log_level = log_level; dmesg_comp->self_comp = self_comp; + dmesg_comp->self_comp_src = self_comp_src; dmesg_comp->params.path = g_string_new(NULL); if (!dmesg_comp->params.path) { - BT_LOGE_STR("Failed to allocate a GString."); + BT_COMP_LOGE_STR("Failed to allocate a GString."); goto error; } ret = handle_params(dmesg_comp, params); if (ret) { - BT_LOGE("Invalid parameters: comp-addr=%p", self_comp); + BT_COMP_LOGE("Invalid parameters: comp-addr=%p", self_comp); goto error; } if (!dmesg_comp->params.read_from_stdin && !g_file_test(dmesg_comp->params.path->str, G_FILE_TEST_IS_REGULAR)) { - BT_LOGE("Input path is not a regular file: " + BT_COMP_LOGE("Input path is not a regular file: " "comp-addr=%p, path=\"%s\"", self_comp, dmesg_comp->params.path->str); goto error; } - status = create_port(self_comp); - if (status != BT_SELF_COMPONENT_STATUS_OK) { + status = create_port(self_comp_src); + if (status != BT_COMPONENT_CLASS_INIT_METHOD_STATUS_OK) { goto error; } - bt_self_component_set_data( - bt_self_component_source_as_self_component(self_comp), - dmesg_comp); + bt_self_component_set_data(self_comp, dmesg_comp); + BT_COMP_LOGI_STR("Component initialized."); goto end; error: destroy_dmesg_component(dmesg_comp); - bt_self_component_set_data( - bt_self_component_source_as_self_component(self_comp), - NULL); + bt_self_component_set_data(self_comp, NULL); if (status >= 0) { - status = BT_SELF_COMPONENT_STATUS_ERROR; + status = BT_COMPONENT_CLASS_INIT_METHOD_STATUS_ERROR; } end: @@ -515,26 +521,26 @@ 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) { - BT_LOGE_STR("Cannot create event message."); + BT_COMP_LOGE_STR("Cannot create event message."); goto error; } @@ -550,8 +556,8 @@ end: } static -int fill_event_payload_from_line(const char *line, - bt_event *event) +int fill_event_payload_from_line(struct dmesg_component *dmesg_comp, + const char *line, bt_event *event) { bt_field *ep_field = NULL; bt_field *str_field = NULL; @@ -563,7 +569,7 @@ int fill_event_payload_from_line(const char *line, str_field = bt_field_structure_borrow_member_field_by_index( ep_field, 0); if (!str_field) { - BT_LOGE_STR("Cannot borrow `timestamp` field from event payload structure field."); + BT_COMP_LOGE_STR("Cannot borrow `timestamp` field from event payload structure field."); goto error; } @@ -573,15 +579,10 @@ int fill_event_payload_from_line(const char *line, len--; } - ret = bt_field_string_clear(str_field); - if (ret) { - BT_LOGE_STR("Cannot clear string field object."); - goto error; - } - + bt_field_string_clear(str_field); ret = bt_field_string_append_with_length(str_field, line, len); if (ret) { - BT_LOGE("Cannot append value to string field object: " + BT_COMP_LOGE("Cannot append value to string field object: " "len=%zu", len); goto error; } @@ -599,6 +600,7 @@ static bt_message *create_msg_from_line( struct dmesg_msg_iter *dmesg_msg_iter, const char *line) { + struct dmesg_component *dmesg_comp = dmesg_msg_iter->dmesg_comp; bt_event *event = NULL; bt_message *msg = NULL; const char *new_start; @@ -607,15 +609,15 @@ bt_message *create_msg_from_line( msg = create_init_event_msg_from_line(dmesg_msg_iter, line, &new_start); if (!msg) { - BT_LOGE_STR("Cannot create and initialize event message from line."); + BT_COMP_LOGE_STR("Cannot create and initialize event message from line."); goto error; } event = bt_message_event_borrow_event(msg); BT_ASSERT(event); - ret = fill_event_payload_from_line(new_start, event); + ret = fill_event_payload_from_line(dmesg_comp, new_start, event); if (ret) { - BT_LOGE("Cannot fill event payload field from line: " + BT_COMP_LOGE("Cannot fill event payload field from line: " "ret=%d", ret); goto error; } @@ -632,13 +634,17 @@ end: static void destroy_dmesg_msg_iter(struct dmesg_msg_iter *dmesg_msg_iter) { + 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_LOGE_ERRNO("Cannot close input file", "."); + BT_COMP_LOGE_ERRNO("Cannot close input file", "."); } } @@ -650,24 +656,23 @@ void destroy_dmesg_msg_iter(struct dmesg_msg_iter *dmesg_msg_iter) BT_HIDDEN -bt_self_message_iterator_status dmesg_msg_iter_init( +bt_component_class_message_iterator_init_method_status dmesg_msg_iter_init( bt_self_message_iterator *self_msg_iter, bt_self_component_source *self_comp, bt_self_component_port_output *self_port) { - struct dmesg_component *dmesg_comp; + struct dmesg_component *dmesg_comp = bt_self_component_get_data( + bt_self_component_source_as_self_component(self_comp)); struct dmesg_msg_iter *dmesg_msg_iter = g_new0(struct dmesg_msg_iter, 1); - bt_self_message_iterator_status status = - BT_SELF_MESSAGE_ITERATOR_STATUS_OK; + bt_component_class_message_iterator_init_method_status status = + BT_COMPONENT_CLASS_MESSAGE_ITERATOR_INIT_METHOD_STATUS_OK; if (!dmesg_msg_iter) { - BT_LOGE_STR("Failed to allocate on dmesg message iterator structure."); + BT_COMP_LOGE_STR("Failed to allocate on dmesg message iterator structure."); goto error; } - dmesg_comp = bt_self_component_get_data( - bt_self_component_source_as_self_component(self_comp)); BT_ASSERT(dmesg_comp); dmesg_msg_iter->dmesg_comp = dmesg_comp; dmesg_msg_iter->pc_msg_iter = self_msg_iter; @@ -677,7 +682,7 @@ bt_self_message_iterator_status dmesg_msg_iter_init( } else { dmesg_msg_iter->fp = fopen(dmesg_comp->params.path->str, "r"); if (!dmesg_msg_iter->fp) { - BT_LOGE_ERRNO("Cannot open input file in read mode", ": path=\"%s\"", + BT_COMP_LOGE_ERRNO("Cannot open input file in read mode", ": path=\"%s\"", dmesg_comp->params.path->str); goto error; } @@ -691,7 +696,7 @@ error: destroy_dmesg_msg_iter(dmesg_msg_iter); bt_self_message_iterator_set_data(self_msg_iter, NULL); if (status >= 0) { - status = BT_SELF_MESSAGE_ITERATOR_STATUS_ERROR; + status = BT_COMPONENT_CLASS_MESSAGE_ITERATOR_INIT_METHOD_STATUS_ERROR; } end: @@ -707,27 +712,25 @@ void dmesg_msg_iter_finalize( } static -bt_self_message_iterator_status dmesg_msg_iter_next_one( +bt_component_class_message_iterator_next_method_status dmesg_msg_iter_next_one( struct dmesg_msg_iter *dmesg_msg_iter, bt_message **msg) { ssize_t len; struct dmesg_component *dmesg_comp; - bt_self_message_iterator_status status = - BT_SELF_MESSAGE_ITERATOR_STATUS_OK; + bt_component_class_message_iterator_next_method_status status = + BT_COMPONENT_CLASS_MESSAGE_ITERATOR_NEXT_METHOD_STATUS_OK; BT_ASSERT(dmesg_msg_iter); dmesg_comp = dmesg_msg_iter->dmesg_comp; BT_ASSERT(dmesg_comp); if (dmesg_msg_iter->state == STATE_DONE) { - status = BT_SELF_MESSAGE_ITERATOR_STATUS_END; + status = BT_COMPONENT_CLASS_MESSAGE_ITERATOR_NEXT_METHOD_STATUS_END; goto end; } if (dmesg_msg_iter->tmp_event_msg || - dmesg_msg_iter->state == STATE_EMIT_PACKET_END || - dmesg_msg_iter->state == STATE_EMIT_STREAM_ACTIVITY_END || dmesg_msg_iter->state == STATE_EMIT_STREAM_END) { goto handle_state; } @@ -740,19 +743,18 @@ bt_self_message_iterator_status dmesg_msg_iter_next_one( &dmesg_msg_iter->linebuf_len, dmesg_msg_iter->fp); if (len < 0) { if (errno == EINVAL) { - status = BT_SELF_MESSAGE_ITERATOR_STATUS_ERROR; + status = BT_COMPONENT_CLASS_MESSAGE_ITERATOR_NEXT_METHOD_STATUS_ERROR; } else if (errno == ENOMEM) { - status = - BT_SELF_MESSAGE_ITERATOR_STATUS_NOMEM; + status = BT_COMPONENT_CLASS_MESSAGE_ITERATOR_NEXT_METHOD_STATUS_MEMORY_ERROR; } else { if (dmesg_msg_iter->state == STATE_EMIT_STREAM_BEGINNING) { /* Stream did not even begin */ - status = BT_SELF_MESSAGE_ITERATOR_STATUS_END; + 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; } } @@ -778,7 +780,7 @@ bt_self_message_iterator_status dmesg_msg_iter_next_one( dmesg_msg_iter->tmp_event_msg = create_msg_from_line( dmesg_msg_iter, dmesg_msg_iter->linebuf); if (!dmesg_msg_iter->tmp_event_msg) { - BT_LOGE("Cannot create event message from line: " + BT_COMP_LOGE("Cannot create event message from line: " "dmesg-comp-addr=%p, line=\"%s\"", dmesg_comp, dmesg_msg_iter->linebuf); goto end; @@ -792,26 +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_STREAM_ACTIVITY_BEGINNING; - break; - case STATE_EMIT_STREAM_ACTIVITY_BEGINNING: - BT_ASSERT(dmesg_msg_iter->tmp_event_msg); - *msg = bt_message_stream_activity_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: @@ -819,23 +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_ACTIVITY_END; - break; - case STATE_EMIT_STREAM_ACTIVITY_END: - *msg = bt_message_stream_activity_end_create( - dmesg_msg_iter->pc_msg_iter, dmesg_comp->stream); - 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); @@ -846,9 +811,9 @@ handle_state: } if (!*msg) { - BT_LOGE("Cannot create message: dmesg-comp-addr=%p", + BT_COMP_LOGE("Cannot create message: dmesg-comp-addr=%p", dmesg_comp); - status = BT_SELF_MESSAGE_ITERATOR_STATUS_ERROR; + status = BT_COMPONENT_CLASS_MESSAGE_ITERATOR_NEXT_METHOD_STATUS_ERROR; } end: @@ -856,7 +821,7 @@ end: } BT_HIDDEN -bt_self_message_iterator_status dmesg_msg_iter_next( +bt_component_class_message_iterator_next_method_status dmesg_msg_iter_next( bt_self_message_iterator *self_msg_iter, bt_message_array_const msgs, uint64_t capacity, uint64_t *count) @@ -864,18 +829,18 @@ bt_self_message_iterator_status dmesg_msg_iter_next( struct dmesg_msg_iter *dmesg_msg_iter = bt_self_message_iterator_get_data( self_msg_iter); - bt_self_message_iterator_status status = - BT_SELF_MESSAGE_ITERATOR_STATUS_OK; + bt_component_class_message_iterator_next_method_status status = + BT_COMPONENT_CLASS_MESSAGE_ITERATOR_NEXT_METHOD_STATUS_OK; uint64_t i = 0; while (i < capacity && - status == BT_SELF_MESSAGE_ITERATOR_STATUS_OK) { + status == BT_COMPONENT_CLASS_MESSAGE_ITERATOR_NEXT_METHOD_STATUS_OK) { bt_message *priv_msg = NULL; status = dmesg_msg_iter_next_one(dmesg_msg_iter, &priv_msg); msgs[i] = priv_msg; - if (status == BT_SELF_MESSAGE_ITERATOR_STATUS_OK) { + if (status == BT_COMPONENT_CLASS_MESSAGE_ITERATOR_NEXT_METHOD_STATUS_OK) { i++; } } @@ -894,25 +859,29 @@ bt_self_message_iterator_status dmesg_msg_iter_next( * message, in which case we'll return it. */ *count = i; - status = BT_SELF_MESSAGE_ITERATOR_STATUS_OK; + status = BT_COMPONENT_CLASS_MESSAGE_ITERATOR_NEXT_METHOD_STATUS_OK; } return status; } 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 -bt_self_message_iterator_status dmesg_msg_iter_seek_beginning( +bt_component_class_message_iterator_seek_beginning_method_status +dmesg_msg_iter_seek_beginning( bt_self_message_iterator *self_msg_iter) { struct dmesg_msg_iter *dmesg_msg_iter = @@ -923,5 +892,5 @@ bt_self_message_iterator_status dmesg_msg_iter_seek_beginning( BT_MESSAGE_PUT_REF_AND_RESET(dmesg_msg_iter->tmp_event_msg); dmesg_msg_iter->last_clock_value = 0; dmesg_msg_iter->state = STATE_EMIT_STREAM_BEGINNING; - return BT_SELF_MESSAGE_ITERATOR_STATUS_OK; + return BT_COMPONENT_CLASS_MESSAGE_ITERATOR_SEEK_BEGINNING_METHOD_STATUS_OK; }