1234567891011121314151617181920212223242526272829303132333435363738 |
- // Copyright (c) 2017 The Chromium Authors. All rights reserved.
- // Use of this source code is governed by a BSD-style license that can be
- // found in the LICENSE file.
- #ifndef SQL_VFS_WRAPPER_H_
- #define SQL_VFS_WRAPPER_H_
- #include <string>
- #include "build/build_config.h"
- #include "third_party/sqlite/sqlite3.h"
- namespace sql {
- // A wrapper around the default VFS.
- //
- // On OSX, the wrapper propagates Time Machine exclusions from the main database
- // file to associated files such as journals. <http://crbug.com/23619> and
- // <http://crbug.com/25959> and others.
- //
- // On Fuchsia the wrapper adds in-process file locking (Fuchsia doesn't support
- // file locking).
- //
- // TODO(shess): On Windows, wrap xFetch() with a structured exception handler.
- sqlite3_vfs* VFSWrapper();
- // Internal representation of sqlite3_file for VFSWrapper.
- struct VfsFile {
- const sqlite3_io_methods* methods;
- sqlite3_file* wrapped_file;
- #if BUILDFLAG(IS_FUCHSIA)
- std::string file_name;
- #endif
- };
- } // namespace sql
- #endif // SQL_VFS_WRAPPER_H_
|