blob: 872e1ba7dcb045148d37e3047511307eeb829dd3 [file] [log] [blame]
// 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 emits SqliteBackendImpl instances and manages their
// storage.
class COMPONENT_EXPORT(PERSISTENT_CACHE) BackendStorageDelegate
: public BackendStorage::Delegate {
public:
// BackendStorage::Delegate:
// Returns a SqliteBackendImpl backend with read-write access to `base_name`.
std::unique_ptr<Backend> MakeBackend(
const base::FilePath& directory,
const base::FilePath& base_name) 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(const base::FilePath& directory,
const base::FilePath& base_name) override;
};
} // namespace persistent_cache::sqlite
#endif // COMPONENTS_PERSISTENT_CACHE_SQLITE_BACKEND_STORAGE_DELEGATE_H_