X-Git-Url: http://git.efficios.com/?a=blobdiff_plain;ds=sidebyside;f=formats%2Flttng-live%2Flttng-live.h;h=276051dafeb82adf3cfd2bc3559e603964681a59;hb=d1368cd164ae9e92109f46d96a825b2d2efaae72;hp=137a296d58d38cb248c539d62be9b1d22d538e98;hpb=5ce3f408681be4086fe7b10c2867bad6e4273765;p=babeltrace.git diff --git a/formats/lttng-live/lttng-live.h b/formats/lttng-live/lttng-live.h index 137a296d..276051da 100644 --- a/formats/lttng-live/lttng-live.h +++ b/formats/lttng-live/lttng-live.h @@ -25,19 +25,30 @@ */ #include +#include +#include "lttng-viewer-abi.h" -#define LTTNG_METADATA_PATH_TEMPLATE "/tmp/lttng-live-XXXXXX" #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; @@ -46,11 +57,14 @@ struct lttng_live_ctx { struct lttng_live_viewer_stream { uint64_t id; uint64_t mmap_size; - int fd; + 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]; }; @@ -67,6 +81,7 @@ struct lttng_live_ctf_trace { struct lttng_live_viewer_stream *metadata_stream; GPtrArray *streams; FILE *metadata_fp; + struct bt_trace_handle *handle; int trace_id; int in_use; }; @@ -84,7 +99,8 @@ int lttng_live_connect_viewer(struct lttng_live_ctx *ctx); 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 */