| Index: net/disk_cache/simple/simple_backend_impl.h
|
| diff --git a/net/disk_cache/simple/simple_backend_impl.h b/net/disk_cache/simple/simple_backend_impl.h
|
| deleted file mode 100644
|
| index 503fc4927b7fc3be29b343decb9e773d26ee01cb..0000000000000000000000000000000000000000
|
| --- a/net/disk_cache/simple/simple_backend_impl.h
|
| +++ /dev/null
|
| @@ -1,212 +0,0 @@
|
| -// Copyright (c) 2013 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 NET_DISK_CACHE_SIMPLE_SIMPLE_BACKEND_IMPL_H_
|
| -#define NET_DISK_CACHE_SIMPLE_SIMPLE_BACKEND_IMPL_H_
|
| -
|
| -#include <string>
|
| -#include <utility>
|
| -#include <vector>
|
| -
|
| -#include "base/callback_forward.h"
|
| -#include "base/compiler_specific.h"
|
| -#include "base/containers/hash_tables.h"
|
| -#include "base/files/file_path.h"
|
| -#include "base/memory/ref_counted.h"
|
| -#include "base/memory/scoped_ptr.h"
|
| -#include "base/memory/weak_ptr.h"
|
| -#include "base/task_runner.h"
|
| -#include "base/time/time.h"
|
| -#include "net/base/cache_type.h"
|
| -#include "net/disk_cache/disk_cache.h"
|
| -#include "net/disk_cache/simple/simple_entry_impl.h"
|
| -#include "net/disk_cache/simple/simple_index_delegate.h"
|
| -
|
| -namespace base {
|
| -class SingleThreadTaskRunner;
|
| -class TaskRunner;
|
| -}
|
| -
|
| -namespace disk_cache {
|
| -
|
| -// SimpleBackendImpl is a new cache backend that stores entries in individual
|
| -// files.
|
| -// See http://www.chromium.org/developers/design-documents/network-stack/disk-cache/very-simple-backend
|
| -//
|
| -// The SimpleBackendImpl provides safe iteration; mutating entries during
|
| -// iteration cannot cause a crash. It is undefined whether entries created or
|
| -// destroyed during the iteration will be included in any pre-existing
|
| -// iterations.
|
| -//
|
| -// The non-static functions below must be called on the IO thread unless
|
| -// otherwise stated.
|
| -
|
| -class SimpleEntryImpl;
|
| -class SimpleIndex;
|
| -
|
| -class NET_EXPORT_PRIVATE SimpleBackendImpl : public Backend,
|
| - public SimpleIndexDelegate,
|
| - public base::SupportsWeakPtr<SimpleBackendImpl> {
|
| - public:
|
| - SimpleBackendImpl(
|
| - const base::FilePath& path,
|
| - int max_bytes,
|
| - net::CacheType cache_type,
|
| - const scoped_refptr<base::SingleThreadTaskRunner>& cache_thread,
|
| - net::NetLog* net_log);
|
| -
|
| - ~SimpleBackendImpl() override;
|
| -
|
| - net::CacheType cache_type() const { return cache_type_; }
|
| - SimpleIndex* index() { return index_.get(); }
|
| -
|
| - base::TaskRunner* worker_pool() { return worker_pool_.get(); }
|
| -
|
| - int Init(const CompletionCallback& completion_callback);
|
| -
|
| - // Sets the maximum size for the total amount of data stored by this instance.
|
| - bool SetMaxSize(int max_bytes);
|
| -
|
| - // Returns the maximum file size permitted in this backend.
|
| - int GetMaxFileSize() const;
|
| -
|
| - // Flush our SequencedWorkerPool.
|
| - static void FlushWorkerPoolForTesting();
|
| -
|
| - // The entry for |entry_hash| is being doomed; the backend will not attempt
|
| - // run new operations for this |entry_hash| until the Doom is completed.
|
| - void OnDoomStart(uint64 entry_hash);
|
| -
|
| - // The entry for |entry_hash| has been successfully doomed, we can now allow
|
| - // operations on this entry, and we can run any operations enqueued while the
|
| - // doom completed.
|
| - void OnDoomComplete(uint64 entry_hash);
|
| -
|
| - // SimpleIndexDelegate:
|
| - void DoomEntries(std::vector<uint64>* entry_hashes,
|
| - const CompletionCallback& callback) override;
|
| -
|
| - // Backend:
|
| - net::CacheType GetCacheType() const override;
|
| - int32 GetEntryCount() const override;
|
| - int OpenEntry(const std::string& key,
|
| - Entry** entry,
|
| - const CompletionCallback& callback) override;
|
| - int CreateEntry(const std::string& key,
|
| - Entry** entry,
|
| - const CompletionCallback& callback) override;
|
| - int DoomEntry(const std::string& key,
|
| - const CompletionCallback& callback) override;
|
| - int DoomAllEntries(const CompletionCallback& callback) override;
|
| - int DoomEntriesBetween(base::Time initial_time,
|
| - base::Time end_time,
|
| - const CompletionCallback& callback) override;
|
| - int DoomEntriesSince(base::Time initial_time,
|
| - const CompletionCallback& callback) override;
|
| - scoped_ptr<Iterator> CreateIterator() override;
|
| - void GetStats(
|
| - std::vector<std::pair<std::string, std::string>>* stats) override;
|
| - void OnExternalCacheHit(const std::string& key) override;
|
| -
|
| - private:
|
| - class SimpleIterator;
|
| - friend class SimpleIterator;
|
| -
|
| - typedef base::hash_map<uint64, SimpleEntryImpl*> EntryMap;
|
| -
|
| - typedef base::Callback<void(base::Time mtime, uint64 max_size, int result)>
|
| - InitializeIndexCallback;
|
| -
|
| - class ActiveEntryProxy;
|
| - friend class ActiveEntryProxy;
|
| -
|
| - // Return value of InitCacheStructureOnDisk().
|
| - struct DiskStatResult {
|
| - base::Time cache_dir_mtime;
|
| - uint64 max_size;
|
| - bool detected_magic_number_mismatch;
|
| - int net_error;
|
| - };
|
| -
|
| - void InitializeIndex(const CompletionCallback& callback,
|
| - const DiskStatResult& result);
|
| -
|
| - // Dooms all entries previously accessed between |initial_time| and
|
| - // |end_time|. Invoked when the index is ready.
|
| - void IndexReadyForDoom(base::Time initial_time,
|
| - base::Time end_time,
|
| - const CompletionCallback& callback,
|
| - int result);
|
| -
|
| - // Try to create the directory if it doesn't exist. This must run on the IO
|
| - // thread.
|
| - static DiskStatResult InitCacheStructureOnDisk(const base::FilePath& path,
|
| - uint64 suggested_max_size);
|
| -
|
| - // Searches |active_entries_| for the entry corresponding to |key|. If found,
|
| - // returns the found entry. Otherwise, creates a new entry and returns that.
|
| - scoped_refptr<SimpleEntryImpl> CreateOrFindActiveEntry(
|
| - uint64 entry_hash,
|
| - const std::string& key);
|
| -
|
| - // Given a hash, will try to open the corresponding Entry. If we have an Entry
|
| - // corresponding to |hash| in the map of active entries, opens it. Otherwise,
|
| - // a new empty Entry will be created, opened and filled with information from
|
| - // the disk.
|
| - int OpenEntryFromHash(uint64 entry_hash,
|
| - Entry** entry,
|
| - const CompletionCallback& callback);
|
| -
|
| - // Doom the entry corresponding to |entry_hash|, if it's active or currently
|
| - // pending doom. This function does not block if there is an active entry,
|
| - // which is very important to prevent races in DoomEntries() above.
|
| - int DoomEntryFromHash(uint64 entry_hash, const CompletionCallback & callback);
|
| -
|
| - // Called when we tried to open an entry with hash alone. When a blank entry
|
| - // has been created and filled in with information from the disk - based on a
|
| - // hash alone - this checks that a duplicate active entry was not created
|
| - // using a key in the meantime.
|
| - void OnEntryOpenedFromHash(uint64 hash,
|
| - Entry** entry,
|
| - const scoped_refptr<SimpleEntryImpl>& simple_entry,
|
| - const CompletionCallback& callback,
|
| - int error_code);
|
| -
|
| - // Called when we tried to open an entry from key. When the entry has been
|
| - // opened, a check for key mismatch is performed.
|
| - void OnEntryOpenedFromKey(const std::string key,
|
| - Entry** entry,
|
| - const scoped_refptr<SimpleEntryImpl>& simple_entry,
|
| - const CompletionCallback& callback,
|
| - int error_code);
|
| -
|
| - // A callback thunk used by DoomEntries to clear the |entries_pending_doom_|
|
| - // after a mass doom.
|
| - void DoomEntriesComplete(scoped_ptr<std::vector<uint64> > entry_hashes,
|
| - const CompletionCallback& callback,
|
| - int result);
|
| -
|
| - const base::FilePath path_;
|
| - const net::CacheType cache_type_;
|
| - scoped_ptr<SimpleIndex> index_;
|
| - const scoped_refptr<base::SingleThreadTaskRunner> cache_thread_;
|
| - scoped_refptr<base::TaskRunner> worker_pool_;
|
| -
|
| - int orig_max_size_;
|
| - const SimpleEntryImpl::OperationsMode entry_operations_mode_;
|
| -
|
| - EntryMap active_entries_;
|
| -
|
| - // The set of all entries which are currently being doomed. To avoid races,
|
| - // these entries cannot have Doom/Create/Open operations run until the doom
|
| - // is complete. The base::Closure map target is used to store deferred
|
| - // operations to be run at the completion of the Doom.
|
| - base::hash_map<uint64, std::vector<base::Closure> > entries_pending_doom_;
|
| -
|
| - net::NetLog* const net_log_;
|
| -};
|
| -
|
| -} // namespace disk_cache
|
| -
|
| -#endif // NET_DISK_CACHE_SIMPLE_SIMPLE_BACKEND_IMPL_H_
|
|
|