*/
#include <babeltrace/ctf-ir/stream.h>
-#include <babeltrace/ctf-writer/ref-internal.h>
+#include <babeltrace/object-internal.h>
#include <babeltrace/ctf-writer/clock.h>
#include <babeltrace/ctf-writer/event-fields.h>
#include <babeltrace/ctf-writer/event-types.h>
#include <babeltrace/ctf/types.h>
#include <glib.h>
-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_object base;
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 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);
-
-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);