X-Git-Url: http://git.efficios.com/?a=blobdiff_plain;f=include%2Fbabeltrace%2Fctf-ir%2Fstream-internal.h;h=b0011ddfdbe91f2e721bc9aeb0d7d652f69b2f14;hb=de3dd40e6fcad56e227f5fc8a8290fbaa88b4e07;hp=0bd39ba49964b368dd78e0ca2c88fed64e9a1be3;hpb=af181248caf97d9c4e22182181f70a16b40ffead;p=babeltrace.git diff --git a/include/babeltrace/ctf-ir/stream-internal.h b/include/babeltrace/ctf-ir/stream-internal.h index 0bd39ba4..b0011ddf 100644 --- a/include/babeltrace/ctf-ir/stream-internal.h +++ b/include/babeltrace/ctf-ir/stream-internal.h @@ -28,7 +28,7 @@ */ #include -#include +#include #include #include #include @@ -36,33 +36,30 @@ #include #include -typedef void(*flush_func)(struct bt_ctf_stream *, void *); - -struct flush_callback { - flush_func func; - void *data; -}; - struct bt_ctf_stream { - struct bt_ctf_ref ref_count; + struct bt_ctf_base base; + /* Trace owning this stream. A stream does not own a trace. */ + struct bt_ctf_trace *trace; uint32_t id; struct bt_ctf_stream_class *stream_class; - struct flush_callback flush; /* Array of pointers to bt_ctf_event for the current packet */ GPtrArray *events; + /* Array of pointers to bt_ctf_field associated with each event */ + GPtrArray *event_headers; + GPtrArray *event_contexts; struct ctf_stream_pos pos; unsigned int flushed_packet_count; + struct bt_ctf_field *packet_header; struct bt_ctf_field *packet_context; + struct bt_ctf_field *event_header; struct bt_ctf_field *event_context; }; +/* Stream class should be locked by the caller after creating a stream */ BT_HIDDEN struct bt_ctf_stream *bt_ctf_stream_create( - struct bt_ctf_stream_class *stream_class); - -BT_HIDDEN -int bt_ctf_stream_set_flush_callback(struct bt_ctf_stream *stream, - flush_func callback, void *data); + struct bt_ctf_stream_class *stream_class, + struct bt_ctf_trace *trace); BT_HIDDEN int bt_ctf_stream_set_fd(struct bt_ctf_stream *stream, int fd);