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;
int create_packet_and_stream_and_trace(struct dmesg_component *dmesg_comp)
{
int ret = 0;
- const char *trace_name;
+ const char *trace_name = NULL;
gchar *basename = NULL;
dmesg_comp->trace = bt_trace_create(dmesg_comp->trace_class);
bt_event_class_put_ref(dmesg_comp->event_class);
bt_stream_put_ref(dmesg_comp->stream);
bt_clock_class_put_ref(dmesg_comp->clock_class);
+ bt_trace_class_put_ref(dmesg_comp->trace_class);
g_free(dmesg_comp);
}
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;
}
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:
case STATE_EMIT_PACKET_END:
*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: