X-Git-Url: https://git.lttng.org/?p=lttng-tools.git;a=blobdiff_plain;f=include%2Flttng%2Fsnapshot.h;h=4c1049b4d4243fd72de68a008df012207b787713;hp=90c712aa624b873387d41c0c1fb06f4ca8b3905b;hb=HEAD;hpb=eef7781fe985ee2a635de32d1c62b845947ea0b7 diff --git a/include/lttng/snapshot.h b/include/lttng/snapshot.h index 90c712aa6..4c1049b4d 100644 --- a/include/lttng/snapshot.h +++ b/include/lttng/snapshot.h @@ -1,23 +1,15 @@ /* - * 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 #define LTTNG_SNAPSHOT_H +#include + #include #include #include @@ -36,12 +28,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); +LTTNG_EXPORT 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); +LTTNG_EXPORT extern void lttng_snapshot_output_destroy(struct lttng_snapshot_output *output); /* * Snapshot output getter family functions. They all return the value present @@ -49,15 +41,20 @@ 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); +LTTNG_EXPORT 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); +LTTNG_EXPORT 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); +LTTNG_EXPORT 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); +LTTNG_EXPORT 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); +LTTNG_EXPORT extern const char * +lttng_snapshot_output_get_data_url(const struct lttng_snapshot_output *output); /* * Snapshot output setter family functions. @@ -67,36 +64,71 @@ 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, - struct lttng_snapshot_output *output); +LTTNG_EXPORT 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, - struct lttng_snapshot_output *output); +LTTNG_EXPORT 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, - struct lttng_snapshot_output *output); +LTTNG_EXPORT 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. + */ +LTTNG_EXPORT 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. + */ +LTTNG_EXPORT 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. + */ +LTTNG_EXPORT 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, - struct lttng_snapshot_output *output); +LTTNG_EXPORT 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, - struct lttng_snapshot_output *output); +LTTNG_EXPORT extern int lttng_snapshot_output_set_data_url(const char *url, + struct lttng_snapshot_output *output); /* * Add an output object to a session identified by name. * * Return 0 on success or else a negative LTTNG_ERR code. */ -int lttng_snapshot_add_output(const char *session_name, - struct lttng_snapshot_output *output); +LTTNG_EXPORT extern int lttng_snapshot_add_output(const char *session_name, + struct lttng_snapshot_output *output); /* * Delete an output object to a session identified by name. * * Return 0 on success or else a negative LTTNG_ERR code. */ -int lttng_snapshot_del_output(const char *session_name, - struct lttng_snapshot_output *output); +LTTNG_EXPORT extern int lttng_snapshot_del_output(const char *session_name, + struct lttng_snapshot_output *output); /* * List all snapshot output(s) of a session identified by name. The output list @@ -105,8 +137,8 @@ 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, - struct lttng_snapshot_output_list **list); +LTTNG_EXPORT extern int lttng_snapshot_list_output(const char *session_name, + struct lttng_snapshot_output_list **list); /* * Return the next available snapshot output object in the given list. A list @@ -115,13 +147,14 @@ 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( - struct lttng_snapshot_output_list *list); +LTTNG_EXPORT 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); +LTTNG_EXPORT extern void +lttng_snapshot_output_list_destroy(struct lttng_snapshot_output_list *list); /* * Snapshot a trace for the given session. @@ -135,8 +168,8 @@ 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, - struct lttng_snapshot_output *output, int wait); +LTTNG_EXPORT extern int +lttng_snapshot_record(const char *session_name, struct lttng_snapshot_output *output, int wait); #ifdef __cplusplus }