| Index: services/url_response_disk_cache/url_response_disk_cache_impl.h
|
| diff --git a/services/url_response_disk_cache/url_response_disk_cache_impl.h b/services/url_response_disk_cache/url_response_disk_cache_impl.h
|
| index fc70766623474140535f5cee0e664a16ab188107..95695e73497f40d649660aa0a5a1ebd14abd0769 100644
|
| --- a/services/url_response_disk_cache/url_response_disk_cache_impl.h
|
| +++ b/services/url_response_disk_cache/url_response_disk_cache_impl.h
|
| @@ -7,55 +7,63 @@
|
|
|
| #include "base/files/file_path.h"
|
| #include "base/macros.h"
|
| +#include "base/memory/ref_counted.h"
|
| #include "base/task_runner.h"
|
| #include "mojo/public/cpp/bindings/strong_binding.h"
|
| #include "mojo/services/url_response_disk_cache/public/interfaces/url_response_disk_cache.mojom.h"
|
| +#include "services/url_response_disk_cache/url_response_disk_cache_db.h"
|
|
|
| namespace mojo {
|
|
|
| class URLResponseDiskCacheImpl : public URLResponseDiskCache {
|
| public:
|
| - using FilePathPairCallback =
|
| + using ResponseFileAndCacheDirCallback =
|
| base::Callback<void(const base::FilePath&, const base::FilePath&)>;
|
|
|
| - // Cleares the cached content. The actual deletion will be performed using the
|
| - // given task runner, but cache appears as cleared immediately after the
|
| - // function returns.
|
| - static void ClearCache(base::TaskRunner* task_runner);
|
| + // Creates the disk cache database. If |force_clean| is true, or the database
|
| + // is outdated, it will clear the cached content. The actual deletion will be
|
| + // performed using the given task runner, but cache appears as cleared
|
| + // immediately after the function returns.
|
| + static scoped_refptr<URLResponseDiskCacheDB> CreateDB(
|
| + scoped_refptr<base::TaskRunner> task_runner,
|
| + bool force_clean);
|
|
|
| - URLResponseDiskCacheImpl(base::TaskRunner* task_runner,
|
| + URLResponseDiskCacheImpl(scoped_refptr<base::TaskRunner> task_runner,
|
| + scoped_refptr<URLResponseDiskCacheDB> db,
|
| const std::string& remote_application_url,
|
| InterfaceRequest<URLResponseDiskCache> request);
|
| ~URLResponseDiskCacheImpl() override;
|
|
|
| private:
|
| // URLResponseDiskCache
|
| - void GetFile(mojo::URLResponsePtr response,
|
| - const GetFileCallback& callback) override;
|
| - void GetExtractedContent(
|
| - mojo::URLResponsePtr response,
|
| - const GetExtractedContentCallback& callback) override;
|
| + void Get(const String& url, const GetCallback& callback) override;
|
| + void Update(URLResponsePtr response) override;
|
| + void UpdateAndGet(URLResponsePtr response,
|
| + const UpdateAndGetCallback& callback) override;
|
| + void UpdateAndGetExtracted(
|
| + URLResponsePtr response,
|
| + const UpdateAndGetExtractedCallback& callback) override;
|
|
|
| - // As |GetFile|, but uses FilePath instead of mojo arrays.
|
| - void GetFileInternal(mojo::URLResponsePtr response,
|
| - const FilePathPairCallback& callback);
|
| + // Internal implementation of |UpdateAndGet| using a pair of base::FilePath to
|
| + // represent the paths the the response body and to the per-response client
|
| + // cache directory.
|
| + void UpdateAndGetInternal(URLResponsePtr response,
|
| + const ResponseFileAndCacheDirCallback& callback);
|
|
|
| - // Internal implementation of |GetExtractedContent|. The parameters are:
|
| + // Internal implementation of |UpdateAndGetExtracted|. The parameters are:
|
| // |callback|: The callback to return values to the caller. It uses FilePath
|
| // instead of mojo arrays.
|
| - // |base_dir|: The base directory for caching data associated to the response.
|
| - // |extracted_dir|: The directory where the file content must be extracted. It
|
| - // will be returned to the consumer.
|
| - // |content|: The content of the body of the response.
|
| - // |cache_dir|: The directory the user can user to cache its own content.
|
| - void GetExtractedContentInternal(const FilePathPairCallback& callback,
|
| - const base::FilePath& base_dir,
|
| - const base::FilePath& extracted_dir,
|
| - const base::FilePath& content,
|
| - const base::FilePath& cache_dir);
|
| + // |response_body_path|: The path to the content of the body of the response.
|
| + // |consumer_cache_directory|: The directory the user can user to cache its
|
| + // own content.
|
| + void UpdateAndGetExtractedInternal(
|
| + const ResponseFileAndCacheDirCallback& callback,
|
| + const base::FilePath& response_body_path,
|
| + const base::FilePath& consumer_cache_directory);
|
|
|
| - base::TaskRunner* task_runner_;
|
| - base::FilePath base_directory_;
|
| + scoped_refptr<base::TaskRunner> task_runner_;
|
| + std::string request_origin_;
|
| + scoped_refptr<URLResponseDiskCacheDB> db_;
|
| StrongBinding<URLResponseDiskCache> binding_;
|
|
|
| DISALLOW_COPY_AND_ASSIGN(URLResponseDiskCacheImpl);
|
|
|