Propagate trace format to relayd on session creation
[deliverable/lttng-tools.git] / src / common / relayd / relayd.hpp
CommitLineData
00e2e675 1/*
ab5be9fa 2 * Copyright (C) 2012 David Goulet <dgoulet@efficios.com>
00e2e675 3 *
ab5be9fa 4 * SPDX-License-Identifier: GPL-2.0-only
00e2e675 5 *
00e2e675
DG
6 */
7
8#ifndef _RELAYD_H
9#define _RELAYD_H
10
c35f9726 11#include <stdbool.h>
8476ce3a 12#include <unistd.h>
00e2e675 13
8476ce3a 14#include <common/dynamic-array.hpp>
c9e313bc
SM
15#include <common/sessiond-comm/relayd.hpp>
16#include <common/sessiond-comm/sessiond-comm.hpp>
17#include <common/trace-chunk.hpp>
8476ce3a 18#include <lttng/trace-format-descriptor-internal.hpp>
c35f9726
JG
19
20struct relayd_stream_rotation_position {
21 uint64_t stream_id;
22 /*
0f83d1cc 23 * Packet sequence number of the first packet belonging to the new
c35f9726
JG
24 * "destination" trace chunk to which the stream is rotating.
25 *
26 * Ignored for metadata streams.
27 */
28 uint64_t rotate_at_seq_num;
29};
00e2e675 30
6151a90f
JD
31int relayd_connect(struct lttcomm_relayd_sock *sock);
32int relayd_close(struct lttcomm_relayd_sock *sock);
1e791a74
JG
33int relayd_create_session(struct lttcomm_relayd_sock *rsock,
34 uint64_t *relayd_session_id,
8476ce3a
JR
35 const char *session_name,
36 const char *hostname,
37 const char *base_path,
38 int session_live_timer,
39 unsigned int snapshot,
40 uint64_t sessiond_session_id,
328c2fe7 41 const lttng_uuid& sessiond_uuid,
db1da059 42 const uint64_t *current_chunk_id,
8476ce3a
JR
43 time_t creation_time,
44 bool session_name_contains_creation_time,
45 char *output_path,
46 lttng::trace_format_descriptor& trace_format);
47int relayd_add_stream(struct lttcomm_relayd_sock *sock,
48 const char *channel_name,
49 const char *domain_name,
50 const char *pathname,
51 uint64_t *stream_id,
52 uint64_t tracefile_size,
53 uint64_t tracefile_count,
d2956687 54 struct lttng_trace_chunk *trace_chunk);
a4baae1b 55int relayd_streams_sent(struct lttcomm_relayd_sock *rsock);
6151a90f 56int relayd_send_close_stream(struct lttcomm_relayd_sock *sock, uint64_t stream_id,
173af62f 57 uint64_t last_net_seq_num);
6151a90f
JD
58int relayd_version_check(struct lttcomm_relayd_sock *sock);
59int relayd_start_data(struct lttcomm_relayd_sock *sock);
60int relayd_send_metadata(struct lttcomm_relayd_sock *sock, size_t len);
61int relayd_send_data_hdr(struct lttcomm_relayd_sock *sock,
00e2e675 62 struct lttcomm_relayd_data_hdr *hdr, size_t size);
6151a90f 63int relayd_data_pending(struct lttcomm_relayd_sock *sock, uint64_t stream_id,
c8f59ee5 64 uint64_t last_net_seq_num);
6151a90f 65int relayd_quiescent_control(struct lttcomm_relayd_sock *sock,
ad7051c0 66 uint64_t metadata_stream_id);
6151a90f
JD
67int relayd_begin_data_pending(struct lttcomm_relayd_sock *sock, uint64_t id);
68int relayd_end_data_pending(struct lttcomm_relayd_sock *sock, uint64_t id,
f7079f67 69 unsigned int *is_data_inflight);
1c20f0e2 70int relayd_send_index(struct lttcomm_relayd_sock *rsock,
50adc264 71 struct ctf_packet_index *index, uint64_t relay_stream_id,
1c20f0e2 72 uint64_t net_seq_num);
93ec662e
JD
73int relayd_reset_metadata(struct lttcomm_relayd_sock *rsock,
74 uint64_t stream_id, uint64_t version);
c35f9726
JG
75/* `positions` is an array of `stream_count` relayd_stream_rotation_position. */
76int relayd_rotate_streams(struct lttcomm_relayd_sock *sock,
ebb29c10 77 unsigned int stream_count, const uint64_t *new_chunk_id,
c35f9726 78 const struct relayd_stream_rotation_position *positions);
e5add6d0
JG
79int relayd_create_trace_chunk(struct lttcomm_relayd_sock *sock,
80 struct lttng_trace_chunk *chunk);
f4c5b127
JR
81int relayd_close_trace_chunk(
82 struct lttcomm_relayd_sock *sock, struct lttng_trace_chunk *chunk, char *path);
83int relayd_trace_chunk_exists(
84 struct lttcomm_relayd_sock *sock, uint64_t chunk_id, bool *chunk_exists);
85enum lttng_error_code relayd_get_configuration(struct lttcomm_relayd_sock *sock,
8614e600 86 uint64_t query_flags,
f4c5b127
JR
87 uint64_t& result_flags,
88 uint64_t *supported_trace_format);
00e2e675
DG
89
90#endif /* _RELAYD_H */
This page took 0.097608 seconds and 5 git commands to generate.