*/
#include <stdint.h>
+#include <sys/param.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[NAME_MAX];
- char session_name[NAME_MAX];
- char relay_hostname[NAME_MAX];
+ char traced_hostname[MAXNAMLEN];
+ char session_name[MAXNAMLEN];
+ char relay_hostname[MAXNAMLEN];
int control_sock;
int port;
+ /* Protocol version to use for this connection. */
+ uint32_t major;
+ uint32_t minor;
struct lttng_live_session *session;
struct bt_context *bt_ctx;
GArray *session_ids;
struct lttng_live_viewer_stream {
uint64_t id;
uint64_t mmap_size;
+ uint64_t ctf_stream_id;
FILE *metadata_fp_write;
ssize_t metadata_len;
int metadata_flag;
- int first_read;
+ int data_pending;
struct lttng_live_session *session;
struct lttng_live_ctf_trace *ctf_trace;
+ struct lttng_viewer_index current_index;
char path[PATH_MAX];
};
int lttng_live_establish_connection(struct lttng_live_ctx *ctx);
int lttng_live_list_sessions(struct lttng_live_ctx *ctx, const char *path);
int lttng_live_attach_session(struct lttng_live_ctx *ctx, uint64_t id);
-void lttng_live_read(struct lttng_live_ctx *ctx);
+int lttng_live_read(struct lttng_live_ctx *ctx);
int lttng_live_get_new_streams(struct lttng_live_ctx *ctx, uint64_t id);
+int lttng_live_should_quit(void);
#endif /* _LTTNG_LIVE_H */