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 // Copyright (c) 2011 The LevelDB Authors. All rights reserved. 7 // Use of this source code is governed by a BSD-style license that can be 8 // found in the LICENSE file. See the AUTHORS file for names of contributors. 9 10 #pragma once 11 #include <memory> 12 13 #include "rocksdb/rocksdb_namespace.h" 14 15 namespace ROCKSDB_NAMESPACE { 16 class FSRandomAccessFile; 17 // This file provides the following main abstractions: 18 // SequentialFileReader : wrapper over Env::SequentialFile 19 // RandomAccessFileReader : wrapper over Env::RandomAccessFile 20 // WritableFileWriter : wrapper over Env::WritableFile 21 // In addition, it also exposed NewReadaheadRandomAccessFile, NewWritableFile, 22 // and ReadOneLine primitives. 23 24 // NewReadaheadRandomAccessFile provides a wrapper over RandomAccessFile to 25 // always prefetch additional data with every read. This is mainly used in 26 // Compaction Table Readers. 27 std::unique_ptr<FSRandomAccessFile> NewReadaheadRandomAccessFile( 28 std::unique_ptr<FSRandomAccessFile>&& file, size_t readahead_size); 29 } // namespace ROCKSDB_NAMESPACE 30