1// Copyright (c) 2011 The Chromium Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
4
5#ifndef STORAGE_BROWSER_DATABASE_VFS_BACKEND_H_
6#define STORAGE_BROWSER_DATABASE_VFS_BACKEND_H_
7
8#include "base/files/file.h"
9#include "base/process/process.h"
10#include "base/strings/string16.h"
11#include "storage/browser/storage_browser_export.h"
12
13namespace base {
14class FilePath;
15}
16
17namespace storage {
18
19class STORAGE_EXPORT VfsBackend {
20 public:
21   static base::File OpenFile(const base::FilePath& file_path,
22                              int desired_flags);
23
24  static base::File OpenTempFileInDirectory(const base::FilePath& dir_path,
25                                            int desired_flags);
26
27  static int DeleteFile(const base::FilePath& file_path, bool sync_dir);
28
29  static uint32 GetFileAttributes(const base::FilePath& file_path);
30
31  static int64 GetFileSize(const base::FilePath& file_path);
32
33  // Used to make decisions in the DatabaseDispatcherHost.
34  static bool OpenTypeIsReadWrite(int desired_flags);
35
36 private:
37  static bool OpenFileFlagsAreConsistent(int desired_flags);
38};
39
40}  // namespace storage
41
42#endif  // STORAGE_BROWSER_DATABASE_VFS_BACKEND_H_
43