stream->id = stream_class->next_stream_id++;
stream->stream_class = stream_class;
bt_ctf_stream_class_get(stream_class);
- bt_ctf_stream_class_freeze(stream_class);
stream->events = g_ptr_array_new_with_free_func(
(GDestroyNotify) bt_ctf_event_put);
if (!stream->events) {
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)
{
return ret;
}
+struct bt_ctf_field *bt_ctf_stream_get_packet_header(
+ struct bt_ctf_stream *stream)
+{
+ struct bt_ctf_field *packet_header = NULL;
+
+ if (!stream) {
+ goto end;
+ }
+
+ packet_header = stream->packet_header;
+ if (packet_header) {
+ bt_ctf_field_get(packet_header);
+ }
+end:
+ return packet_header;
+}
+
+int bt_ctf_stream_set_packet_header(struct bt_ctf_stream *stream,
+ struct bt_ctf_field *field)
+{
+ int ret = 0;
+ struct bt_ctf_field_type *field_type = NULL;
+
+ if (!stream || !field) {
+ ret = -1;
+ goto end;
+ }
+
+ field_type = bt_ctf_field_get_type(field);
+ if (field_type != stream->trace->packet_header_type) {
+ ret = -1;
+ goto end;
+ }
+
+ bt_ctf_field_get(field);
+ bt_ctf_field_put(stream->packet_header);
+ stream->packet_header = field;
+end:
+ if (field_type) {
+ bt_ctf_field_type_put(field_type);
+ }
+ return ret;
+}
+
int bt_ctf_stream_flush(struct bt_ctf_stream *stream)
{
int ret = 0;