X-Git-Url: http://git.efficios.com/?a=blobdiff_plain;f=formats%2Fctf%2Fir%2Fstream.c;h=8b60e1e86ddf5f10e846120ee58323872b0c5ac8;hb=9f476966aa40bd0de2cd0654623ea03f8a3254eb;hp=18c9edfd96000e03b8e6bd65dd81dd4e0f6d4bb6;hpb=263a7df55e73a6c558020d4ad5efdc9e4a6b386b;p=babeltrace.git diff --git a/formats/ctf/ir/stream.c b/formats/ctf/ir/stream.c index 18c9edfd..8b60e1e8 100644 --- a/formats/ctf/ir/stream.c +++ b/formats/ctf/ir/stream.c @@ -355,6 +355,21 @@ void bt_ctf_stream_set_trace(struct bt_ctf_stream *stream, stream->trace = trace; } +struct bt_ctf_stream_class *bt_ctf_stream_get_class( + struct bt_ctf_stream *stream) +{ + struct bt_ctf_stream_class *stream_class = NULL; + + if (!stream) { + goto end; + } + + stream_class = stream->stream_class; + bt_ctf_stream_class_get(stream_class); +end: + return stream_class; +} + int bt_ctf_stream_get_discarded_events_count( struct bt_ctf_stream *stream, uint64_t *count) { @@ -494,6 +509,11 @@ int bt_ctf_stream_append_event(struct bt_ctf_stream *stream, goto end; } + ret = bt_ctf_event_populate_event_header(event); + if (ret) { + goto end; + } + /* Make sure the event's payload is set */ ret = bt_ctf_event_validate(event); if (ret) { @@ -666,7 +686,6 @@ int bt_ctf_stream_flush(struct bt_ctf_stream *stream) int ret = 0; size_t i; uint64_t timestamp_begin, timestamp_end, events_discarded; - struct bt_ctf_stream_class *stream_class; struct bt_ctf_field *integer = NULL; struct ctf_stream_pos packet_context_pos; @@ -698,7 +717,6 @@ int bt_ctf_stream_flush(struct bt_ctf_stream *stream) goto end; } - stream_class = stream->stream_class; timestamp_begin = ((struct bt_ctf_event *) g_ptr_array_index( stream->events, 0))->timestamp; timestamp_end = ((struct bt_ctf_event *) g_ptr_array_index( @@ -764,24 +782,24 @@ int bt_ctf_stream_flush(struct bt_ctf_stream *stream) event->event_class); uint64_t timestamp = bt_ctf_event_get_timestamp(event); - ret = bt_ctf_field_reset(stream_class->event_header); + ret = bt_ctf_field_reset(event->event_header); if (ret) { goto end; } - ret = set_structure_field_integer(stream_class->event_header, + ret = set_structure_field_integer(event->event_header, "id", event_id); if (ret) { goto end; } - ret = set_structure_field_integer(stream_class->event_header, + ret = set_structure_field_integer(event->event_header, "timestamp", timestamp); if (ret) { goto end; } /* Write event header */ - ret = bt_ctf_field_serialize(stream_class->event_header, + ret = bt_ctf_field_serialize(event->event_header, &stream->pos); if (ret) { goto end;