From 3f402eb6e98ce9c1b33d0fdcab67400a3ffdba42 Mon Sep 17 00:00:00 2001 From: Laurent Morichetti Date: Mon, 9 May 2022 12:41:14 -0700 Subject: [PATCH] Disallow copying or moving trace buffers Change-Id: I104b8240a76c6d96ae176b0b26bdc2e4e5e3c180 --- test/tool/trace_buffer.h | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/test/tool/trace_buffer.h b/test/tool/trace_buffer.h index a7bd2c6d69..57aa7cc5a7 100644 --- a/test/tool/trace_buffer.h +++ b/test/tool/trace_buffer.h @@ -36,7 +36,8 @@ namespace roctracer { -struct TraceBufferBase { +class TraceBufferBase { + public: static void FlushAll() { std::lock_guard lock(mutex_); @@ -58,9 +59,13 @@ struct TraceBufferBase { TraceBufferBase(std::string name, int priority) : name_(std::move(name)), priority_(priority), next_(nullptr) {} + TraceBufferBase(const TraceBufferBase&) = delete; + TraceBufferBase& operator=(const TraceBufferBase&) = delete; + virtual void Flush() = 0; - const std::string& name() const { return name_; } + std::string name() && { return std::move(name_); } + const std::string& name() const& { return name_; } private: const std::string name_;