X-Git-Url: https://git.lttng.org/?p=lttng-tools.git;a=blobdiff_plain;f=src%2Fbin%2Flttng-relayd%2Flttng-relayd.hpp;fp=src%2Fbin%2Flttng-relayd%2Flttng-relayd.hpp;h=a92ace77d34c19289e0fadb676f0900b4a96862a;hp=0000000000000000000000000000000000000000;hb=c9e313bc594f40a86eed237dce222c0fc99c957f;hpb=4878de5c7deb512bbdac4fdfc498907efa06fb7c diff --git a/src/bin/lttng-relayd/lttng-relayd.hpp b/src/bin/lttng-relayd/lttng-relayd.hpp new file mode 100644 index 000000000..a92ace77d --- /dev/null +++ b/src/bin/lttng-relayd/lttng-relayd.hpp @@ -0,0 +1,59 @@ +#ifndef LTTNG_RELAYD_H +#define LTTNG_RELAYD_H + +/* + * Copyright (C) 2012 Julien Desfossez + * Copyright (C) 2012 David Goulet + * Copyright (C) 2015 Mathieu Desnoyers + * + * SPDX-License-Identifier: GPL-2.0-only + * + */ + +#include +#include +#include + +#include +#include + +struct sessiond_trace_chunk_registry; + +/* + * Queue used to enqueue relay requests + */ +struct relay_conn_queue { + struct cds_wfcq_head head; + struct cds_wfcq_tail tail; + int32_t futex; +}; + +enum relay_group_output_by { + RELAYD_GROUP_OUTPUT_BY_UNKNOWN, + RELAYD_GROUP_OUTPUT_BY_HOST, + RELAYD_GROUP_OUTPUT_BY_SESSION, +}; + +/* + * Contains stream indexed by ID. This is important since many commands lookup + * streams only by ID thus also keeping them in this hash table makes the + * search O(1). + */ +extern struct lttng_ht *sessions_ht; +extern struct lttng_ht *relay_streams_ht; +extern struct lttng_ht *viewer_streams_ht; +extern struct sessiond_trace_chunk_registry *sessiond_trace_chunk_registry; + +extern char *opt_output_path; +extern const char *tracing_group_name; +extern const char * const config_section_name; +extern enum relay_group_output_by opt_group_output_by; + +extern int thread_quit_pipe[2]; + +extern struct fd_tracker *the_fd_tracker; + +void lttng_relay_notify_ready(void); +int lttng_relay_stop_threads(void); + +#endif /* LTTNG_RELAYD_H */