X-Git-Url: http://git.efficios.com/?a=blobdiff_plain;f=include%2Flttng%2Fsession.h;h=7211eeec1ca11b7a3e4062148c00a9f7a46b92ad;hb=394357fe3de7a15a81b5a25bddf3d82a64c1f65a;hp=302f0fc026fc112a1e7d2effd635ed04a4db7da3;hpb=a5dfbb9db7ba31913657ed921006b13977b7b426;p=lttng-tools.git diff --git a/include/lttng/session.h b/include/lttng/session.h index 302f0fc02..7211eeec1 100644 --- a/include/lttng/session.h +++ b/include/lttng/session.h @@ -32,7 +32,7 @@ extern "C" { */ #define LTTNG_SESSION_PADDING1 12 struct lttng_session { - char name[NAME_MAX]; + char name[LTTNG_NAME_MAX]; /* The path where traces are written */ char path[PATH_MAX]; uint32_t enabled; /* enabled/started: 1, disabled/stopped: 0 */ @@ -90,12 +90,25 @@ extern int lttng_create_session_live(const char *name, const char *url, * The session will not be usable, tracing will be stopped thus buffers will be * flushed. * + * This call will wait for data availability for each domain of the session, + * which can take an arbitrary amount of time. However, when returning the + * tracing data is guaranteed to be ready to be read and analyzed. + * + * lttng_destroy_session_no_wait() may be used if such a guarantee is not + * needed. + * * The name can't be NULL here. * * Return 0 on success else a negative LTTng error code. */ extern int lttng_destroy_session(const char *name); +/* + * Behaves exactly like lttng_destroy_session but does not wait for data + * availability. + */ +extern int lttng_destroy_session_no_wait(const char *name); + /* * List all the tracing sessions. * @@ -139,16 +152,33 @@ extern int lttng_untrack_pid(struct lttng_handle *handle, int pid); /* * List PIDs in the tracker. * - * @enabled is set to whether the PID tracker is enabled. - * @pids is set to an allocated array of PIDs currently tracked. On - * success, @pids must be freed by the caller. - * @nr_pids is set to the number of entries contained by the @pids array. + * enabled is set to whether the PID tracker is enabled. + * pids is set to an allocated array of PIDs currently tracked. On + * success, pids must be freed by the caller. + * nr_pids is set to the number of entries contained by the pids array. * * Returns 0 on success, else a negative LTTng error code. */ extern int lttng_list_tracker_pids(struct lttng_handle *handle, int *enabled, int32_t **pids, size_t *nr_pids); +/* + * Ask the session daemon where the data for this session is currently being + * written to. If rotations occured during a session, this call is useful to + * know the location of the last chunk. + * + * Return 0 and allocate chunk_path if rotations occured for this session, the + * caller needs to free chunk_path. + * Return 1 if no rotation occured during the session, chunk_path is left + * unallocated. + * + * Return a negative LTTng error code on error (readable with lttng_strerror). + * + * FIXME: Return an lttng_location object rather than a path. + */ +extern int lttng_session_get_current_archive_location(const char *session_name, + char **chunk_path); + #ifdef __cplusplus } #endif