Fix: Use list rather than ptr array for trace streams
[babeltrace.git] / formats / lttng-live / lttng-live.h
index 4ab641d59609dceb6d53d2a9cfa4f12f9835d467..9739078a52e67278ca3b9d85962700e9a317cfc1 100644 (file)
@@ -25,6 +25,8 @@
  */
 
 #include <stdint.h>
+#include <sys/param.h>
+#include <babeltrace/list.h>
 #include "lttng-viewer-abi.h"
 
 #define LTTNG_DEFAULT_NETWORK_VIEWER_PORT      5344
 #define LTTNG_LIVE_MAJOR                       2
 #define LTTNG_LIVE_MINOR                       4
 
+/*
+ * The lttng-live output file pointer is currently hardcoded to stdout,
+ * and is expected to be hardcoded to this by fflush() performed between
+ * each packet.
+ */
+#define LTTNG_LIVE_OUTPUT_FP                   stdout
+
 struct lttng_live_ctx {
        char traced_hostname[MAXNAMLEN];
        char session_name[MAXNAMLEN];
@@ -57,6 +66,9 @@ struct lttng_live_viewer_stream {
        struct lttng_live_session *session;
        struct lttng_live_ctf_trace *ctf_trace;
        struct lttng_viewer_index current_index;
+       struct bt_list_head session_stream_node;        /* Owns stream. */
+       struct bt_list_head trace_stream_node;
+       int in_trace;
        char path[PATH_MAX];
 };
 
@@ -64,14 +76,16 @@ struct lttng_live_session {
        uint64_t live_timer_interval;
        uint64_t stream_count;
        struct lttng_live_ctx *ctx;
-       struct lttng_live_viewer_stream *streams;
+       /* The session stream list owns the lttng_live_viewer_stream object. */
+       struct bt_list_head stream_list;
        GHashTable *ctf_traces;
 };
 
 struct lttng_live_ctf_trace {
        uint64_t ctf_trace_id;
        struct lttng_live_viewer_stream *metadata_stream;
-       GPtrArray *streams;
+       /* The trace has a list of streams, but it has no ownership on them. */
+       struct bt_list_head stream_list;
        FILE *metadata_fp;
        struct bt_trace_handle *handle;
        int trace_id;
This page took 0.024629 seconds and 4 git commands to generate.