X-Git-Url: http://git.efficios.com/?p=lttng-tools.git;a=blobdiff_plain;f=include%2Flttng%2Fsession.h;h=6c54d7e4f5e55fc5fe4dde03ff8a4812e5411a97;hp=599892d13508d7470f829f6c89da84b18aea6b9c;hb=b178f53e90c376dd44b020535c32649edef8f80e;hpb=e20ee7c273030ac52eea4778f03dc3a9d65857b3 diff --git a/include/lttng/session.h b/include/lttng/session.h index 599892d13..6c54d7e4f 100644 --- a/include/lttng/session.h +++ b/include/lttng/session.h @@ -22,6 +22,8 @@ extern "C" { #endif +struct lttng_session_descriptor; + /* * Basic session information. * @@ -33,15 +35,43 @@ extern "C" { #define LTTNG_SESSION_PADDING1 12 struct lttng_session { char name[LTTNG_NAME_MAX]; - /* The path where traces are written */ + /* + * Human-readable representation of the trace's destination. + * In the case of a local tracing session, a path is provided: + * /path/to/the/output + * + * In the case of a remote (network) tracing session, the string has + * the following format: + * net://hostname/path:ctrl_port [data: data_port] + */ char path[PATH_MAX]; uint32_t enabled; /* enabled/started: 1, disabled/stopped: 0 */ uint32_t snapshot_mode; unsigned int live_timer_interval; /* usec */ - char padding[LTTNG_SESSION_PADDING1]; + union { + char padding[LTTNG_SESSION_PADDING1]; + void *ptr; + } extended; }; +/* + * Create a session on the session daemon from a session descriptor. + * + * See the session descriptor API description in session-descriptor.h + * + * Note that unspecified session descriptor parameters, such as a session's + * name, are updated in the session descriptor if the creation of the session + * succeeds. This allows users to query the session's auto-generated name + * after its creation. Note that other attributes can be queried using the + * session listing API. + * + * Returns LTTNG_OK on success. See lttng-error.h for the meaning of the other + * return codes. + */ +extern enum lttng_error_code lttng_create_session_ext( + struct lttng_session_descriptor *session_descriptor); + /* * Create a tracing session using a name and an optional URL. * @@ -76,8 +106,7 @@ extern int lttng_create_session_snapshot(const char *name, * indexes are sent and metadata is checked for each packet. * * Name can't be NULL. If no URL is given, the default is to send the data to - * net://127.0.0.1. The timer_interval is in usec and by default set to 1000000 - * (1 second). + * net://127.0.0.1. The timer_interval is in usec. * * Return 0 on success else a negative LTTng error code. */ @@ -112,11 +141,28 @@ extern int lttng_destroy_session_no_wait(const char *name); /* * List all the tracing sessions. * - * Return the size (number of entries) of the "lttng_session" array. Caller - * must free sessions. On error, a negative LTTng error code is returned. + * Return the number of entries of the "lttng_session" array. The caller + * must free the returned sessions array directly using free(). + * + * On error, a negative LTTng error code is returned. */ extern int lttng_list_sessions(struct lttng_session **sessions); +/* + * Get the creation time of an lttng_session object on the session daemon. + * + * This function must only be used with lttng_session objects returned + * by lttng_list_sessions() or lttng_session_create(). + * + * The creation time returned is a UNIX timestamp; the number of seconds since + * Epoch (1970-01-01 00:00:00 +0000 (UTC)). + * + * Returns LTTNG_OK on success. See lttng-error.h for the meaning of the other + * return codes. + */ +extern enum lttng_error_code lttng_session_get_creation_time( + const struct lttng_session *session, uint64_t *creation_time); + /* * Set the shared memory path for a session. *