9eb3e1f77d
Summary: Use delete to disable automatic generated methods instead of private, and put the constructor together for more clear.This modification cause the unused field warning, so add unused attribute to disable this warning. Pull Request resolved: https://github.com/facebook/rocksdb/pull/5009 Differential Revision: D17288733 fbshipit-source-id: 8a767ce096f185f1db01bd28fc88fef1cdd921f3
114 lines
4.4 KiB
C++
114 lines
4.4 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
|
|
#ifndef ROCKSDB_LITE
|
|
#include <string>
|
|
#include <vector>
|
|
#include "db/db_impl/db_impl.h"
|
|
|
|
namespace rocksdb {
|
|
|
|
class CompactedDBImpl : public DBImpl {
|
|
public:
|
|
CompactedDBImpl(const DBOptions& options, const std::string& dbname);
|
|
// No copying allowed
|
|
CompactedDBImpl(const CompactedDBImpl&) = delete;
|
|
void operator=(const CompactedDBImpl&) = delete;
|
|
|
|
virtual ~CompactedDBImpl();
|
|
|
|
static Status Open(const Options& options, const std::string& dbname,
|
|
DB** dbptr);
|
|
|
|
// Implementations of the DB interface
|
|
using DB::Get;
|
|
virtual Status Get(const ReadOptions& options,
|
|
ColumnFamilyHandle* column_family, const Slice& key,
|
|
PinnableSlice* value) override;
|
|
using DB::MultiGet;
|
|
virtual std::vector<Status> MultiGet(
|
|
const ReadOptions& options,
|
|
const std::vector<ColumnFamilyHandle*>&,
|
|
const std::vector<Slice>& keys, std::vector<std::string>* values)
|
|
override;
|
|
|
|
using DBImpl::Put;
|
|
virtual Status Put(const WriteOptions& /*options*/,
|
|
ColumnFamilyHandle* /*column_family*/,
|
|
const Slice& /*key*/, const Slice& /*value*/) override {
|
|
return Status::NotSupported("Not supported in compacted db mode.");
|
|
}
|
|
using DBImpl::Merge;
|
|
virtual Status Merge(const WriteOptions& /*options*/,
|
|
ColumnFamilyHandle* /*column_family*/,
|
|
const Slice& /*key*/, const Slice& /*value*/) override {
|
|
return Status::NotSupported("Not supported in compacted db mode.");
|
|
}
|
|
using DBImpl::Delete;
|
|
virtual Status Delete(const WriteOptions& /*options*/,
|
|
ColumnFamilyHandle* /*column_family*/,
|
|
const Slice& /*key*/) override {
|
|
return Status::NotSupported("Not supported in compacted db mode.");
|
|
}
|
|
virtual Status Write(const WriteOptions& /*options*/,
|
|
WriteBatch* /*updates*/) override {
|
|
return Status::NotSupported("Not supported in compacted db mode.");
|
|
}
|
|
using DBImpl::CompactRange;
|
|
virtual Status CompactRange(const CompactRangeOptions& /*options*/,
|
|
ColumnFamilyHandle* /*column_family*/,
|
|
const Slice* /*begin*/,
|
|
const Slice* /*end*/) override {
|
|
return Status::NotSupported("Not supported in compacted db mode.");
|
|
}
|
|
|
|
virtual Status DisableFileDeletions() override {
|
|
return Status::NotSupported("Not supported in compacted db mode.");
|
|
}
|
|
virtual Status EnableFileDeletions(bool /*force*/) override {
|
|
return Status::NotSupported("Not supported in compacted db mode.");
|
|
}
|
|
virtual Status GetLiveFiles(std::vector<std::string>& ret,
|
|
uint64_t* manifest_file_size,
|
|
bool /*flush_memtable*/) override {
|
|
return DBImpl::GetLiveFiles(ret, manifest_file_size,
|
|
false /* flush_memtable */);
|
|
}
|
|
using DBImpl::Flush;
|
|
virtual Status Flush(const FlushOptions& /*options*/,
|
|
ColumnFamilyHandle* /*column_family*/) override {
|
|
return Status::NotSupported("Not supported in compacted db mode.");
|
|
}
|
|
using DB::IngestExternalFile;
|
|
virtual Status IngestExternalFile(
|
|
ColumnFamilyHandle* /*column_family*/,
|
|
const std::vector<std::string>& /*external_files*/,
|
|
const IngestExternalFileOptions& /*ingestion_options*/) override {
|
|
return Status::NotSupported("Not supported in compacted db mode.");
|
|
}
|
|
using DB::CreateColumnFamilyWithImport;
|
|
virtual Status CreateColumnFamilyWithImport(
|
|
const ColumnFamilyOptions& /*options*/,
|
|
const std::string& /*column_family_name*/,
|
|
const ImportColumnFamilyOptions& /*import_options*/,
|
|
const ExportImportFilesMetaData& /*metadata*/,
|
|
ColumnFamilyHandle** /*handle*/) override {
|
|
return Status::NotSupported("Not supported in compacted db mode.");
|
|
}
|
|
|
|
private:
|
|
friend class DB;
|
|
inline size_t FindFile(const Slice& key);
|
|
Status Init(const Options& options);
|
|
|
|
ColumnFamilyData* cfd_;
|
|
Version* version_;
|
|
const Comparator* user_comparator_;
|
|
LevelFilesBrief files_;
|
|
};
|
|
}
|
|
#endif // ROCKSDB_LITE
|