2 * Copyright (C) 2012 David Goulet <dgoulet@efficios.com>
4 * SPDX-License-Identifier: LGPL-2.1-only
11 #include <netinet/in.h>
12 #include <lttng/lttng.h>
13 #include <common/macros.hpp>
15 /* Destination type of lttng URI */
22 /* Type of lttng URI where it is a final destination or a hop */
24 LTTNG_URI_DST, /* The URI is a final destination */
26 * Hops are not supported yet but planned for a future release.
32 /* Communication stream type of a lttng URI */
33 enum lttng_stream_type {
39 * Protocol type of a lttng URI. The value 0 indicate that the proto_type field
42 enum lttng_proto_type {
43 LTTNG_PROTO_TYPE_NONE = 0,
46 * UDP protocol is not supported for now.
53 * Structure representing an URI supported by lttng.
56 enum lttng_dst_type dtype;
57 enum lttng_uri_type utype;
58 enum lttng_stream_type stype;
59 enum lttng_proto_type proto;
61 char subdir[LTTNG_PATH_MAX];
63 char ipv4[INET_ADDRSTRLEN];
64 char ipv6[INET6_ADDRSTRLEN];
65 char path[LTTNG_PATH_MAX];
69 int uri_compare(struct lttng_uri *uri1, struct lttng_uri *uri2);
70 void uri_free(struct lttng_uri *uri);
71 ssize_t uri_parse(const char *str_uri, struct lttng_uri **uris);
72 ssize_t uri_parse_str_urls(const char *ctrl_url, const char *data_url,
73 struct lttng_uri **uris);
74 int uri_to_str_url(struct lttng_uri *uri, char *dst, size_t size);
76 #endif /* _LTT_URI_H */