lib: have default clock snapshot in event message
[babeltrace.git] / plugins / text / dmesg / dmesg.c
index 65d7dfed69f16a1156cca8e5adb8ab5465cad413..aac38c23e3fa294a17f08d001a91f115c57ed806 100644 (file)
@@ -50,6 +50,7 @@ struct dmesg_msg_iter {
        size_t linebuf_len;
        FILE *fp;
        bt_message *tmp_event_msg;
+       uint64_t last_clock_value;
 
        enum {
                STATE_EMIT_STREAM_BEGINNING,
@@ -515,8 +516,16 @@ skip_ts:
                goto error;
        }
 
-       msg = bt_message_event_create(msg_iter->pc_msg_iter,
-               dmesg_comp->event_class, dmesg_comp->packet);
+       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);
+               msg_iter->last_clock_value = ts;
+       } else {
+               msg = bt_message_event_create(msg_iter->pc_msg_iter,
+                       dmesg_comp->event_class, dmesg_comp->packet);
+       }
+
        if (!msg) {
                BT_LOGE_STR("Cannot create event message.");
                goto error;
@@ -524,11 +533,6 @@ skip_ts:
 
        event = bt_message_event_borrow_event(msg);
        BT_ASSERT(event);
-
-       if (dmesg_comp->clock_class) {
-               bt_event_set_default_clock_snapshot(event, ts);
-       }
-
        goto end;
 
 error:
@@ -789,8 +793,16 @@ handle_state:
                break;
        case STATE_EMIT_PACKET_BEGINNING:
                BT_ASSERT(dmesg_msg_iter->tmp_event_msg);
-               *msg = bt_message_packet_beginning_create(
-                       dmesg_msg_iter->pc_msg_iter, dmesg_comp->packet);
+
+               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:
@@ -799,8 +811,15 @@ handle_state:
                dmesg_msg_iter->tmp_event_msg = NULL;
                break;
        case STATE_EMIT_PACKET_END:
-               *msg = bt_message_packet_end_create(
-                       dmesg_msg_iter->pc_msg_iter, dmesg_comp->packet);
+               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:
This page took 0.026447 seconds and 4 git commands to generate.