1 // Copyright (c) 2011-present, Facebook, Inc. All rights reserved. 2 // This source code is licensed under both the GPLv2 (found in the 3 // COPYING file in the root directory) and Apache 2.0 License 4 // (found in the LICENSE.Apache file in the root directory). 5 6 #pragma once 7 #ifndef ROCKSDB_LITE 8 9 #include <string> 10 11 #include "rocksdb/db.h" 12 13 namespace ROCKSDB_NAMESPACE { 14 15 struct DumpOptions { 16 // Database that will be dumped 17 std::string db_path; 18 // File location that will contain dump output 19 std::string dump_location; 20 // Don't include db information header in the dump 21 bool anonymous = false; 22 }; 23 24 class DbDumpTool { 25 public: 26 bool Run(const DumpOptions& dump_options, 27 ROCKSDB_NAMESPACE::Options options = ROCKSDB_NAMESPACE::Options()); 28 }; 29 30 struct UndumpOptions { 31 // Database that we will load the dumped file into 32 std::string db_path; 33 // File location of the dumped file that will be loaded 34 std::string dump_location; 35 // Compact the db after loading the dumped file 36 bool compact_db = false; 37 }; 38 39 class DbUndumpTool { 40 public: 41 bool Run(const UndumpOptions& undump_options, 42 ROCKSDB_NAMESPACE::Options options = ROCKSDB_NAMESPACE::Options()); 43 }; 44 } // namespace ROCKSDB_NAMESPACE 45 #endif // ROCKSDB_LITE 46