X-Git-Url: http://git.efficios.com/?a=blobdiff_plain;f=include%2Fbabeltrace%2Fctf-ir%2Fstream-internal.h;h=0cbd18b561539217621099ac837370d2f625dc74;hb=7b33a0e0d8f23d90285ea7c7820a725bcbd96c6b;hp=25c526c0aa4f714ec1ce8501ebd39d3518658598;hpb=7158d791b5e1fd0b0419417717c861a85f458202;p=babeltrace.git diff --git a/include/babeltrace/ctf-ir/stream-internal.h b/include/babeltrace/ctf-ir/stream-internal.h index 25c526c0..0cbd18b5 100644 --- a/include/babeltrace/ctf-ir/stream-internal.h +++ b/include/babeltrace/ctf-ir/stream-internal.h @@ -1,5 +1,5 @@ -#ifndef BABELTRACE_CTF_WRITER_STREAM_INTERNAL_H -#define BABELTRACE_CTF_WRITER_STREAM_INTERNAL_H +#ifndef BABELTRACE_CTF_IR_STREAM_INTERNAL_H +#define BABELTRACE_CTF_IR_STREAM_INTERNAL_H /* * BabelTrace - CTF Writer: Stream internal @@ -28,37 +28,43 @@ */ #include +#include #include -#include -#include -#include +#include #include -#include #include -struct bt_ctf_stream { +struct bt_stream_class; +struct bt_stream; + +struct bt_stream { struct bt_object base; - uint32_t id; - struct bt_ctf_stream_class *stream_class; - /* 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_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; + + /* Weak: parent is this class's trace */ + struct bt_stream_class *class; + + struct { + GString *str; + + /* NULL or `str->str` above */ + const char *value; + } name; + + uint64_t id; + + /* Pool of `struct bt_packet *` */ + struct bt_object_pool packet_pool; + + bool frozen; }; -/* Stream class should be frozen by the caller after creating a stream */ BT_HIDDEN -struct bt_ctf_stream *bt_ctf_stream_create( - struct bt_ctf_stream_class *stream_class, - struct bt_ctf_trace *trace); +void _bt_stream_freeze(struct bt_stream *stream); -BT_HIDDEN -int bt_ctf_stream_set_fd(struct bt_ctf_stream *stream, int fd); +#ifdef BT_DEV_MODE +# define bt_stream_freeze _bt_stream_freeze +#else +# define bt_stream_freeze(_stream) +#endif -#endif /* BABELTRACE_CTF_WRITER_STREAM_INTERNAL_H */ +#endif /* BABELTRACE_CTF_IR_STREAM_INTERNAL_H */