X-Git-Url: https://git.liburcu.org/?a=blobdiff_plain;f=include%2Flttng%2Fsnapshot.h;h=bdbfb094f42a3aa4dc8024e409577e3f058bdb70;hb=9693d2d54f346806f95115644a24cc29abe91c96;hp=90c712aa624b873387d41c0c1fb06f4ca8b3905b;hpb=eef7781fe985ee2a635de32d1c62b845947ea0b7;p=lttng-tools.git diff --git a/include/lttng/snapshot.h b/include/lttng/snapshot.h index 90c712aa6..bdbfb094f 100644 --- a/include/lttng/snapshot.h +++ b/include/lttng/snapshot.h @@ -1,18 +1,8 @@ /* - * Copyright (C) 2013 - David Goulet + * Copyright (C) 2013 David Goulet * - * This library is free software; you can redistribute it and/or modify it - * under the terms of the GNU Lesser General Public License, version 2.1 only, - * as published by the Free Software Foundation. + * SPDX-License-Identifier: LGPL-2.1-only * - * This library is distributed in the hope that it will be useful, but WITHOUT - * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - * FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License - * for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this library; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ #ifndef LTTNG_SNAPSHOT_H @@ -36,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 @@ -49,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. @@ -67,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); /* @@ -87,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); /* @@ -95,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); /* @@ -105,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); /* @@ -115,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. @@ -135,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