1 // Copyright 2017 The Chromium Authors
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
5 #ifndef SQL_VFS_WRAPPER_H_
6 #define SQL_VFS_WRAPPER_H_
10 #include "build/build_config.h"
11 #include "third_party/sqlite/sqlite3.h"
15 // A wrapper around the default VFS.
17 // On OSX, the wrapper propagates Time Machine exclusions from the main database
18 // file to associated files such as journals. <http://crbug.com/23619> and
19 // <http://crbug.com/25959> and others.
21 // On Fuchsia the wrapper adds in-process file locking (Fuchsia doesn't support
24 // TODO(shess): On Windows, wrap xFetch() with a structured exception handler.
25 sqlite3_vfs* VFSWrapper();
27 // Internal representation of sqlite3_file for VFSWrapper.
29 const sqlite3_io_methods* methods;
30 sqlite3_file* wrapped_file;
31 #if BUILDFLAG(IS_FUCHSIA)
32 std::string file_name;
38 #endif // SQL_VFS_WRAPPER_H_