mirror of
https://github.com/facebook/rocksdb.git
synced 2026-10-23 08:09:02 +03:00
Summary: Pull Request resolved: https://github.com/facebook/rocksdb/pull/15366 ## Summary RocksDB's `.clang-tidy` enables `modernize-use-override`, and clang reports `-Winconsistent-missing-destructor-override` when a class marks its other overrides `override` but not its destructor. A full scan finds 190 `modernize-use-override`, 100 `inconsistent-missing-destructor-override` and 2 `suggest-override` findings in existing code. Each one comes back whenever a nearby line is edited. They also leave classes where it isn't obvious which methods are overrides and which introduce new virtuals. This diff marks every overriding member function and destructor `override` and drops the redundant `virtual` on them. It also changes `final override` to plain `final`, following the check's default. Methods that introduce a new virtual keep `virtual`. Most edits are clang-tidy's own fix-its, applied mechanically and then clang-formatted. Compatibility: no signatures change. In public headers the only effect is `override` on existing overrides (mostly destructors, plus `Cache::Name()` and `Cache::GetPrintableOptions()`, whose base declarations are unconditional), so user code that subclasses these types is unaffected. Every touched class now marks all of its overrides consistently. This matters because a partially-marked class would make clang emit `-Winconsistent-missing-override` in user builds. Reviewed By: rban1 Differential Revision: D123186308 fbshipit-source-id: 1f489ea32d938e3ec0faf9abc4f7ff49e042d37a
49 lines
1.3 KiB
C++
49 lines
1.3 KiB
C++
// Copyright (c) 2011-present, Facebook, Inc. All rights reserved.
|
|
// This source code is licensed under both the GPLv2 (found in the
|
|
// COPYING file in the root directory) and Apache 2.0 License
|
|
// (found in the LICENSE.Apache file in the root directory).
|
|
|
|
#pragma once
|
|
|
|
#include "rocksdb/trace_reader_writer.h"
|
|
|
|
namespace ROCKSDB_NAMESPACE {
|
|
|
|
class RandomAccessFileReader;
|
|
class WritableFileWriter;
|
|
|
|
// FileTraceReader allows reading RocksDB traces from a file.
|
|
class FileTraceReader : public TraceReader {
|
|
public:
|
|
explicit FileTraceReader(std::unique_ptr<RandomAccessFileReader>&& reader);
|
|
~FileTraceReader() override;
|
|
|
|
Status Read(std::string* data) override;
|
|
Status Close() override;
|
|
Status Reset() override;
|
|
|
|
private:
|
|
std::unique_ptr<RandomAccessFileReader> file_reader_;
|
|
Slice result_;
|
|
size_t offset_;
|
|
char* const buffer_;
|
|
|
|
static const unsigned int kBufferSize;
|
|
};
|
|
|
|
// FileTraceWriter allows writing RocksDB traces to a file.
|
|
class FileTraceWriter : public TraceWriter {
|
|
public:
|
|
explicit FileTraceWriter(std::unique_ptr<WritableFileWriter>&& file_writer);
|
|
~FileTraceWriter() override;
|
|
|
|
Status Write(const Slice& data) override;
|
|
Status Close() override;
|
|
uint64_t GetFileSize() override;
|
|
|
|
private:
|
|
std::unique_ptr<WritableFileWriter> file_writer_;
|
|
};
|
|
|
|
} // namespace ROCKSDB_NAMESPACE
|