/*
- * Copyright (C) 2011 - Julien Desfossez <julien.desfossez@polymtl.ca>
- * Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
- * 2012 - David Goulet <dgoulet@efficios.com>
- * 2018 - Jérémie Galarneau <jeremie.galarneau@efficios.com>
+ * Copyright (C) 2011 Julien Desfossez <julien.desfossez@polymtl.ca>
+ * Copyright (C) 2011 Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
+ * Copyright (C) 2012 David Goulet <dgoulet@efficios.com>
+ * Copyright (C) 2018 Jérémie Galarneau <jeremie.galarneau@efficios.com>
*
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License, version 2 only,
- * as published by the Free Software Foundation.
+ * SPDX-License-Identifier: GPL-2.0-only
*
- * This program 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 General Public License for
- * more details.
- *
- * You should have received a copy of the GNU General Public License along
- * with this program; if not, write to the Free Software Foundation, Inc.,
- * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
*/
#ifndef LIB_CONSUMER_H
#include <common/hashtable/hashtable.h>
#include <common/compat/fcntl.h>
-#include <common/compat/uuid.h>
+#include <common/uuid.h>
#include <common/sessiond-comm/sessiond-comm.h>
#include <common/pipe.h>
#include <common/index/ctf-index.h>
LTTNG_CONSUMER_CREATE_TRACE_CHUNK,
LTTNG_CONSUMER_CLOSE_TRACE_CHUNK,
LTTNG_CONSUMER_TRACE_CHUNK_EXISTS,
+ LTTNG_CONSUMER_CLEAR_CHANNEL,
};
enum lttng_consumer_type {
/* For UST */
uid_t ust_app_uid; /* Application UID. */
struct ustctl_consumer_channel *uchan;
- unsigned char uuid[UUID_STR_LEN];
+ unsigned char uuid[LTTNG_UUID_STR_LEN];
/*
* Temporary stream list used to store the streams once created and waiting
* to be sent to the session daemon by receiving the
*/
bool quiescent;
+ /*
+ * True if the sequence number is not available (lttng-modules < 2.8).
+ */
+ bool sequence_number_unavailable;
+
/*
* metadata_timer_lock protects flags waiting_on_metadata and
* missed_metadata_flush.
pthread_mutex_t metadata_rdv_lock;
/*
- * rotate_position represents the position in the ring-buffer that has to
- * be flushed to disk to complete the ongoing rotation. When that position
- * is reached, this tracefile can be closed and a new one is created in
- * channel_read_only_attributes.path.
+ * rotate_position represents the packet sequence number of the last
+ * packet which belongs to the current trace chunk prior to the rotation.
+ * When that position is reached, this tracefile can be closed and a
+ * new one is created in channel_read_only_attributes.path.
*/
- unsigned long rotate_position;
+ uint64_t rotate_position;
/*
* Read-only copies of channel values. We cannot safely access the
enum lttcomm_return_code lttng_consumer_close_trace_chunk(
const uint64_t *relayd_id, uint64_t session_id,
uint64_t chunk_id, time_t chunk_close_timestamp,
- const enum lttng_trace_chunk_command_type *close_command);
+ const enum lttng_trace_chunk_command_type *close_command,
+ char *path);
enum lttcomm_return_code lttng_consumer_trace_chunk_exists(
const uint64_t *relayd_id, uint64_t session_id,
uint64_t chunk_id);
enum lttcomm_return_code lttng_consumer_init_command(
struct lttng_consumer_local_data *ctx,
const lttng_uuid sessiond_uuid);
+int lttng_consumer_clear_channel(struct lttng_consumer_channel *channel);
#endif /* LIB_CONSUMER_H */