YugabyteDB (2.13.1.0-b60, 21121d69985fbf76aa6958d8f04a9bfa936293b5)

Coverage Report

Created: 2022-03-22 16:43

/Users/deen/code/yugabyte-db/src/yb/rocksdb/sst_dump_tool.h
Line
Count
Source (jump to first uncovered line)
1
// Copyright (c) 2011-present, Facebook, Inc.  All rights reserved.
2
// This source code is licensed under the BSD-style license found in the
3
// LICENSE file in the root directory of this source tree. An additional grant
4
// of patent rights can be found in the PATENTS file in the same directory.
5
//
6
// The following only applies to changes made to this file as part of YugaByte development.
7
//
8
// Portions Copyright (c) YugaByte, Inc.
9
//
10
// Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
11
// in compliance with the License.  You may obtain a copy of the License at
12
//
13
// http://www.apache.org/licenses/LICENSE-2.0
14
//
15
// Unless required by applicable law or agreed to in writing, software distributed under the License
16
// is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
17
// or implied.  See the License for the specific language governing permissions and limitations
18
// under the License.
19
//
20
#ifndef YB_ROCKSDB_SST_DUMP_TOOL_H
21
#define YB_ROCKSDB_SST_DUMP_TOOL_H
22
23
#ifndef ROCKSDB_LITE
24
#pragma once
25
26
#include <glog/logging.h>
27
28
#include "yb/docdb/docdb_types.h"
29
#include "yb/util/enums.h"
30
#include "yb/util/slice.h"
31
32
namespace rocksdb {
33
34
YB_DEFINE_ENUM(OutputFormat, (kRaw)(kHex)(kDecodedRegularDB)(kDecodedIntentsDB));
35
36
class DocDBKVFormatter {
37
 public:
38
0
  virtual ~DocDBKVFormatter() = default;
39
40
  virtual std::string Format(
41
      const yb::Slice&, const yb::Slice&, yb::docdb::StorageDbType) const = 0;
42
};
43
44
class SSTDumpTool {
45
 public:
46
  explicit SSTDumpTool(const rocksdb::DocDBKVFormatter* formatter = nullptr)
47
5
      : formatter_(formatter) {}
48
49
  int Run(int argc, char** argv);
50
51
 private:
52
  const rocksdb::DocDBKVFormatter* formatter_;
53
};
54
55
}  // namespace rocksdb
56
57
#endif  // ROCKSDB_LITE
58
59
#endif  // YB_ROCKSDB_SST_DUMP_TOOL_H