| // Copyright 2013 The Chromium Authors |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| #ifndef STORAGE_COMMON_FILE_SYSTEM_FILE_SYSTEM_MOUNT_OPTION_H_ |
| #define STORAGE_COMMON_FILE_SYSTEM_FILE_SYSTEM_MOUNT_OPTION_H_ |
| |
| namespace storage { |
| |
| // Option for specifying if flush or disk sync operation is wanted after |
| // writing. |
| enum class FlushPolicy { |
| // Specify this policy if flushing (with FlushMode::kEndOfFile) is required |
| // in order to commit written data. |
| // |
| // Note that syncing is only invoked via FileStreamWriter::Flush() and via |
| // base::File::Flush() for native files. Hence, syncing will not be performed |
| // for copying within non-native file systems as well as for non-native |
| // copies performed with snapshots. |
| FLUSH_ON_COMPLETION, |
| |
| // Specify this policy if no flushing is required after a writing operation is |
| // completed. |
| NO_FLUSH_ON_COMPLETION |
| }; |
| |
| // Conveys options for a mounted file systems. |
| class FileSystemMountOption { |
| public: |
| // Constructs with the default options. |
| FileSystemMountOption() |
| : flush_policy_(FlushPolicy::NO_FLUSH_ON_COMPLETION) {} |
| |
| // Constructs with the specified component. |
| explicit FileSystemMountOption(FlushPolicy flush_policy) |
| : flush_policy_(flush_policy) {} |
| |
| FlushPolicy flush_policy() const { return flush_policy_; } |
| |
| private: |
| FlushPolicy flush_policy_; |
| }; |
| |
| } // namespace storage |
| |
| #endif // STORAGE_COMMON_FILE_SYSTEM_FILE_SYSTEM_MOUNT_OPTION_H_ |