X-Git-Url: https://git.liburcu.org/?a=blobdiff_plain;f=include%2Flttng%2Fsnapshot.h;h=bdbfb094f42a3aa4dc8024e409577e3f058bdb70;hb=0c0793a8aa516d406c11665fccc3997247b9acf8;hp=9bdf775a97c8e36dc7fe3846ec01189e6120e95c;hpb=ab5be9fa2eb5ba9600a82cd18fd3cfcbac69169a;p=lttng-tools.git diff --git a/include/lttng/snapshot.h b/include/lttng/snapshot.h index 9bdf775a9..bdbfb094f 100644 --- a/include/lttng/snapshot.h +++ b/include/lttng/snapshot.h @@ -26,12 +26,12 @@ struct lttng_snapshot_output_list; /* * Return an newly allocated snapshot output object or NULL on error. */ -struct lttng_snapshot_output *lttng_snapshot_output_create(void); +extern struct lttng_snapshot_output *lttng_snapshot_output_create(void); /* * Free a given snapshot output object. */ -void lttng_snapshot_output_destroy(struct lttng_snapshot_output *output); +extern void lttng_snapshot_output_destroy(struct lttng_snapshot_output *output); /* * Snapshot output getter family functions. They all return the value present @@ -39,15 +39,15 @@ void lttng_snapshot_output_destroy(struct lttng_snapshot_output *output); */ /* Return snapshot ID. */ -uint32_t lttng_snapshot_output_get_id(struct lttng_snapshot_output *output); +extern uint32_t lttng_snapshot_output_get_id(const struct lttng_snapshot_output *output); /* Return maximum size of a snapshot. */ -uint64_t lttng_snapshot_output_get_maxsize(struct lttng_snapshot_output *output); +extern uint64_t lttng_snapshot_output_get_maxsize(const struct lttng_snapshot_output *output); /* Return snapshot name. */ -const char *lttng_snapshot_output_get_name(struct lttng_snapshot_output *output); +extern const char *lttng_snapshot_output_get_name(const struct lttng_snapshot_output *output); /* Return snapshot control URL in a text format. */ -const char *lttng_snapshot_output_get_ctrl_url(struct lttng_snapshot_output *output); +extern const char *lttng_snapshot_output_get_ctrl_url(const struct lttng_snapshot_output *output); /* Return snapshot data URL in a text format. */ -const char *lttng_snapshot_output_get_data_url(struct lttng_snapshot_output *output); +extern const char *lttng_snapshot_output_get_data_url(const struct lttng_snapshot_output *output); /* * Snapshot output setter family functions. @@ -57,19 +57,55 @@ const char *lttng_snapshot_output_get_data_url(struct lttng_snapshot_output *out */ /* Set a custom ID. */ -int lttng_snapshot_output_set_id(uint32_t id, +extern int lttng_snapshot_output_set_id(uint32_t id, struct lttng_snapshot_output *output); /* Set the maximum size. */ -int lttng_snapshot_output_set_size(uint64_t size, +extern int lttng_snapshot_output_set_size(uint64_t size, struct lttng_snapshot_output *output); /* Set the snapshot name. */ -int lttng_snapshot_output_set_name(const char *name, +extern int lttng_snapshot_output_set_name(const char *name, struct lttng_snapshot_output *output); + +/* + * Set the output destination to be a path on the local filesystem. + * + * The path must be absolute. It can optionally begin with `file://`. + * + * Return 0 on success or else a negative LTTNG_ERR code. + */ +extern int lttng_snapshot_output_set_local_path(const char *path, + struct lttng_snapshot_output *output); + +/* + * Set the output destination to be the network from a combined control/data + * URL. + * + * `url` must start with `net://` or `net6://`. + * + * Return 0 on success or else a negative LTTNG_ERR code. + */ +extern int lttng_snapshot_output_set_network_url(const char *url, + struct lttng_snapshot_output *output); + +/* + * Set the output destination to be the network using separate URLs for control + * and data. + * + * Both ctrl_url and data_url must be non-null. + * + * `ctrl_url` and `data_url` must start with `tcp://` or `tcp6://`. + * + * Return 0 on success or else a negative LTTNG_ERR code. + */ +extern int lttng_snapshot_output_set_network_urls( + const char *ctrl_url, const char *data_url, + struct lttng_snapshot_output *output); + /* Set the control URL. Local and remote URL are supported. */ -int lttng_snapshot_output_set_ctrl_url(const char *url, +extern int lttng_snapshot_output_set_ctrl_url(const char *url, struct lttng_snapshot_output *output); /* Set the data URL. Local and remote URL are supported. */ -int lttng_snapshot_output_set_data_url(const char *url, +extern int lttng_snapshot_output_set_data_url(const char *url, struct lttng_snapshot_output *output); /* @@ -77,7 +113,7 @@ int lttng_snapshot_output_set_data_url(const char *url, * * Return 0 on success or else a negative LTTNG_ERR code. */ -int lttng_snapshot_add_output(const char *session_name, +extern int lttng_snapshot_add_output(const char *session_name, struct lttng_snapshot_output *output); /* @@ -85,7 +121,7 @@ int lttng_snapshot_add_output(const char *session_name, * * Return 0 on success or else a negative LTTNG_ERR code. */ -int lttng_snapshot_del_output(const char *session_name, +extern int lttng_snapshot_del_output(const char *session_name, struct lttng_snapshot_output *output); /* @@ -95,7 +131,7 @@ int lttng_snapshot_del_output(const char *session_name, * Return 0 on success or else a negative LTTNG_ERR code and the list pointer * is untouched. */ -int lttng_snapshot_list_output(const char *session_name, +extern int lttng_snapshot_list_output(const char *session_name, struct lttng_snapshot_output_list **list); /* @@ -105,13 +141,13 @@ int lttng_snapshot_list_output(const char *session_name, * Return the next object on success or else NULL indicating the end of the * list. */ -struct lttng_snapshot_output *lttng_snapshot_output_list_get_next( +extern struct lttng_snapshot_output *lttng_snapshot_output_list_get_next( struct lttng_snapshot_output_list *list); /* * Free an output list object. */ -void lttng_snapshot_output_list_destroy(struct lttng_snapshot_output_list *list); +extern void lttng_snapshot_output_list_destroy(struct lttng_snapshot_output_list *list); /* * Snapshot a trace for the given session. @@ -125,7 +161,7 @@ void lttng_snapshot_output_list_destroy(struct lttng_snapshot_output_list *list) * * Return 0 on success or else a negative LTTNG_ERR value. */ -int lttng_snapshot_record(const char *session_name, +extern int lttng_snapshot_record(const char *session_name, struct lttng_snapshot_output *output, int wait); #ifdef __cplusplus