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 <atomic> 12 #include "file/sequence_file_reader.h" 13 #include "rocksdb/env.h" 14 #include "rocksdb/file_system.h" 15 16 namespace ROCKSDB_NAMESPACE { 17 // Returns a WritableFile. 18 // 19 // env : the Env. 20 // fname : the file name. 21 // result : output arg. A WritableFile based on `fname` returned. 22 // options : the Env Options. 23 extern IOStatus NewWritableFile(FileSystem* fs, const std::string& fname, 24 std::unique_ptr<FSWritableFile>* result, 25 const FileOptions& options); 26 27 #ifndef NDEBUG 28 bool IsFileSectorAligned(const size_t off, size_t sector_size); 29 #endif // NDEBUG 30 } // namespace ROCKSDB_NAMESPACE 31