// Copyright (c) 2011-present, Facebook, Inc. All rights reserved. // This source code is licensed under the BSD-style license found in the // LICENSE file in the root directory of this source tree. An additional grant // of patent rights can be found in the PATENTS file in the same directory. // Copyright (c) 2011 The LevelDB Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. See the AUTHORS file for names of contributors. #pragma once #include #include #include #include "db/table_properties_collector.h" #include "rocksdb/comparator.h" #include "rocksdb/env.h" #include "rocksdb/status.h" #include "rocksdb/types.h" #include "rocksdb/options.h" #include "rocksdb/immutable_options.h" #include "rocksdb/table_properties.h" namespace rocksdb { struct Options; struct FileMetaData; class Env; struct EnvOptions; class Iterator; class TableCache; class VersionEdit; class TableBuilder; class WritableFileWriter; class InternalStats; class InternalIterator; TableBuilder* NewTableBuilder( const ImmutableCFOptions& options, const InternalKeyComparator& internal_comparator, const std::vector>* int_tbl_prop_collector_factories, uint32_t column_family_id, WritableFileWriter* file, const CompressionType compression_type, const CompressionOptions& compression_opts, const bool skip_filters = false); // Build a Table file from the contents of *iter. The generated file // will be named according to number specified in meta. On success, the rest of // *meta will be filled with metadata about the generated table. // If no data is present in *iter, meta->file_size will be set to // zero, and no Table file will be produced. extern Status BuildTable( const std::string& dbname, Env* env, const ImmutableCFOptions& options, const EnvOptions& env_options, TableCache* table_cache, InternalIterator* iter, FileMetaData* meta, const InternalKeyComparator& internal_comparator, const std::vector>* int_tbl_prop_collector_factories, uint32_t column_family_id, std::vector snapshots, SequenceNumber earliest_write_conflict_snapshot, const CompressionType compression, const CompressionOptions& compression_opts, bool paranoid_file_checks, InternalStats* internal_stats, const Env::IOPriority io_priority = Env::IO_HIGH, TableProperties* table_properties = nullptr); } // namespace rocksdb