| Index: net/disk_cache/simple/simple_index.h
|
| diff --git a/net/disk_cache/simple/simple_index.h b/net/disk_cache/simple/simple_index.h
|
| deleted file mode 100644
|
| index 099d7fdb80c5ce6869ee2654497572209611b29a..0000000000000000000000000000000000000000
|
| --- a/net/disk_cache/simple/simple_index.h
|
| +++ /dev/null
|
| @@ -1,202 +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_INDEX_H_
|
| -#define NET_DISK_CACHE_SIMPLE_SIMPLE_INDEX_H_
|
| -
|
| -#include <list>
|
| -#include <vector>
|
| -
|
| -#include "base/basictypes.h"
|
| -#include "base/callback.h"
|
| -#include "base/containers/hash_tables.h"
|
| -#include "base/files/file_path.h"
|
| -#include "base/gtest_prod_util.h"
|
| -#include "base/memory/ref_counted.h"
|
| -#include "base/memory/scoped_ptr.h"
|
| -#include "base/memory/weak_ptr.h"
|
| -#include "base/single_thread_task_runner.h"
|
| -#include "base/threading/thread_checker.h"
|
| -#include "base/time/time.h"
|
| -#include "base/timer/timer.h"
|
| -#include "net/base/cache_type.h"
|
| -#include "net/base/completion_callback.h"
|
| -#include "net/base/net_export.h"
|
| -
|
| -#if defined(OS_ANDROID)
|
| -#include "base/android/application_status_listener.h"
|
| -#endif
|
| -
|
| -class Pickle;
|
| -class PickleIterator;
|
| -
|
| -namespace disk_cache {
|
| -
|
| -class SimpleIndexDelegate;
|
| -class SimpleIndexFile;
|
| -struct SimpleIndexLoadResult;
|
| -
|
| -class NET_EXPORT_PRIVATE EntryMetadata {
|
| - public:
|
| - EntryMetadata();
|
| - EntryMetadata(base::Time last_used_time, uint64 entry_size);
|
| -
|
| - base::Time GetLastUsedTime() const;
|
| - void SetLastUsedTime(const base::Time& last_used_time);
|
| -
|
| - uint64 GetEntrySize() const;
|
| - void SetEntrySize(uint64 entry_size);
|
| -
|
| - // Serialize the data into the provided pickle.
|
| - void Serialize(Pickle* pickle) const;
|
| - bool Deserialize(PickleIterator* it);
|
| -
|
| - static base::TimeDelta GetLowerEpsilonForTimeComparisons() {
|
| - return base::TimeDelta::FromSeconds(1);
|
| - }
|
| - static base::TimeDelta GetUpperEpsilonForTimeComparisons() {
|
| - return base::TimeDelta();
|
| - }
|
| -
|
| - private:
|
| - friend class SimpleIndexFileTest;
|
| -
|
| - // There are tens of thousands of instances of EntryMetadata in memory, so the
|
| - // size of each entry matters. Even when the values used to set these members
|
| - // are originally calculated as >32-bit types, the actual necessary size for
|
| - // each shouldn't exceed 32 bits, so we use 32-bit types here.
|
| - uint32 last_used_time_seconds_since_epoch_;
|
| - int32 entry_size_; // Storage size in bytes.
|
| -};
|
| -static_assert(sizeof(EntryMetadata) == 8, "incorrect metadata size");
|
| -
|
| -// This class is not Thread-safe.
|
| -class NET_EXPORT_PRIVATE SimpleIndex
|
| - : public base::SupportsWeakPtr<SimpleIndex> {
|
| - public:
|
| - typedef std::vector<uint64> HashList;
|
| -
|
| - SimpleIndex(const scoped_refptr<base::SingleThreadTaskRunner>& io_thread,
|
| - SimpleIndexDelegate* delegate,
|
| - net::CacheType cache_type,
|
| - scoped_ptr<SimpleIndexFile> simple_index_file);
|
| -
|
| - virtual ~SimpleIndex();
|
| -
|
| - void Initialize(base::Time cache_mtime);
|
| -
|
| - void SetMaxSize(uint64 max_bytes);
|
| - uint64 max_size() const { return max_size_; }
|
| -
|
| - void Insert(uint64 entry_hash);
|
| - void Remove(uint64 entry_hash);
|
| -
|
| - // Check whether the index has the entry given the hash of its key.
|
| - bool Has(uint64 entry_hash) const;
|
| -
|
| - // Update the last used time of the entry with the given key and return true
|
| - // iff the entry exist in the index.
|
| - bool UseIfExists(uint64 entry_hash);
|
| -
|
| - void WriteToDisk();
|
| -
|
| - // Update the size (in bytes) of an entry, in the metadata stored in the
|
| - // index. This should be the total disk-file size including all streams of the
|
| - // entry.
|
| - bool UpdateEntrySize(uint64 entry_hash, int64 entry_size);
|
| -
|
| - typedef base::hash_map<uint64, EntryMetadata> EntrySet;
|
| -
|
| - static void InsertInEntrySet(uint64 entry_hash,
|
| - const EntryMetadata& entry_metadata,
|
| - EntrySet* entry_set);
|
| -
|
| - // Executes the |callback| when the index is ready. Allows multiple callbacks.
|
| - int ExecuteWhenReady(const net::CompletionCallback& callback);
|
| -
|
| - // Returns entries from the index that have last accessed time matching the
|
| - // range between |initial_time| and |end_time| where open intervals are
|
| - // possible according to the definition given in |DoomEntriesBetween()| in the
|
| - // disk cache backend interface.
|
| - scoped_ptr<HashList> GetEntriesBetween(const base::Time initial_time,
|
| - const base::Time end_time);
|
| -
|
| - // Returns the list of all entries key hash.
|
| - scoped_ptr<HashList> GetAllHashes();
|
| -
|
| - // Returns number of indexed entries.
|
| - int32 GetEntryCount() const;
|
| -
|
| - // Returns whether the index has been initialized yet.
|
| - bool initialized() const { return initialized_; }
|
| -
|
| - private:
|
| - friend class SimpleIndexTest;
|
| - FRIEND_TEST_ALL_PREFIXES(SimpleIndexTest, IndexSizeCorrectOnMerge);
|
| - FRIEND_TEST_ALL_PREFIXES(SimpleIndexTest, DiskWriteQueued);
|
| - FRIEND_TEST_ALL_PREFIXES(SimpleIndexTest, DiskWriteExecuted);
|
| - FRIEND_TEST_ALL_PREFIXES(SimpleIndexTest, DiskWritePostponed);
|
| -
|
| - void StartEvictionIfNeeded();
|
| - void EvictionDone(int result);
|
| -
|
| - void PostponeWritingToDisk();
|
| -
|
| - void UpdateEntryIteratorSize(EntrySet::iterator* it, int64 entry_size);
|
| -
|
| - // Must run on IO Thread.
|
| - void MergeInitializingSet(scoped_ptr<SimpleIndexLoadResult> load_result);
|
| -
|
| -#if defined(OS_ANDROID)
|
| - void OnApplicationStateChange(base::android::ApplicationState state);
|
| -
|
| - scoped_ptr<base::android::ApplicationStatusListener> app_status_listener_;
|
| -#endif
|
| -
|
| - // The owner of |this| must ensure the |delegate_| outlives |this|.
|
| - SimpleIndexDelegate* delegate_;
|
| -
|
| - EntrySet entries_set_;
|
| -
|
| - const net::CacheType cache_type_;
|
| - uint64 cache_size_; // Total cache storage size in bytes.
|
| - uint64 max_size_;
|
| - uint64 high_watermark_;
|
| - uint64 low_watermark_;
|
| - bool eviction_in_progress_;
|
| - base::TimeTicks eviction_start_time_;
|
| -
|
| - // This stores all the entry_hash of entries that are removed during
|
| - // initialization.
|
| - base::hash_set<uint64> removed_entries_;
|
| - bool initialized_;
|
| -
|
| - scoped_ptr<SimpleIndexFile> index_file_;
|
| -
|
| - scoped_refptr<base::SingleThreadTaskRunner> io_thread_;
|
| -
|
| - // All nonstatic SimpleEntryImpl methods should always be called on the IO
|
| - // thread, in all cases. |io_thread_checker_| documents and enforces this.
|
| - base::ThreadChecker io_thread_checker_;
|
| -
|
| - // Timestamp of the last time we wrote the index to disk.
|
| - // PostponeWritingToDisk() may give up postponing and allow the write if it
|
| - // has been a while since last time we wrote.
|
| - base::TimeTicks last_write_to_disk_;
|
| -
|
| - base::OneShotTimer<SimpleIndex> write_to_disk_timer_;
|
| - base::Closure write_to_disk_cb_;
|
| -
|
| - typedef std::list<net::CompletionCallback> CallbackList;
|
| - CallbackList to_run_when_initialized_;
|
| -
|
| - // Set to true when the app is on the background. When the app is in the
|
| - // background we can write the index much more frequently, to insure fresh
|
| - // index on next startup.
|
| - bool app_on_background_;
|
| -};
|
| -
|
| -} // namespace disk_cache
|
| -
|
| -#endif // NET_DISK_CACHE_SIMPLE_SIMPLE_INDEX_H_
|
|
|