| // Copyright 2025 The Chromium Authors | |
| // Use of this source code is governed by a BSD-style license that can be | |
| // found in the LICENSE file. | |
| #ifndef COMPONENTS_PERSISTENT_CACHE_SQLITE_BACKEND_STORAGE_DELEGATE_H_ | |
| #define COMPONENTS_PERSISTENT_CACHE_SQLITE_BACKEND_STORAGE_DELEGATE_H_ | |
| #include "base/component_export.h" | |
| #include "components/persistent_cache/backend_storage.h" | |
| namespace persistent_cache::sqlite { | |
| // A delegate that manages storage on behalf of SqliteBackendImpl. | |
| class COMPONENT_EXPORT(PERSISTENT_CACHE) BackendStorageDelegate | |
| : public BackendStorage::Delegate { | |
| public: | |
| // BackendStorage::Delegate: | |
| base::expected<PendingBackend, TransactionError> MakePendingBackend( | |
| Client client, | |
| const base::FilePath& directory, | |
| const base::FilePath& base_name, | |
| bool single_connection, | |
| bool journal_mode_wal) override; | |
| base::expected<std::unique_ptr<Backend>, TransactionError> MakeBackend( | |
| Client client, | |
| const base::FilePath& directory, | |
| const base::FilePath& base_name, | |
| bool single_connection, | |
| bool journal_mode_wal) override; | |
| std::optional<PendingBackend> ShareReadOnlyConnection( | |
| const base::FilePath& directory, | |
| const base::FilePath& base_name, | |
| const Backend& backend) override; | |
| std::optional<PendingBackend> ShareReadWriteConnection( | |
| const base::FilePath& directory, | |
| const base::FilePath& base_name, | |
| const Backend& backend) override; | |
| // Returns the basename of `file` without its extension if its extension is | |
| // ".db". | |
| base::FilePath GetBaseName(const base::FilePath& file) override; | |
| // Deletes all SQLite files for `base_name` in `directory` (e.g., the .db and | |
| // .journal files). | |
| int64_t DeleteFiles(Client client, | |
| const base::FilePath& directory, | |
| const base::FilePath& base_name) override; | |
| }; | |
| } // namespace persistent_cache::sqlite | |
| #endif // COMPONENTS_PERSISTENT_CACHE_SQLITE_BACKEND_STORAGE_DELEGATE_H_ |