Index: net/disk_cache/memory/mem_entry_impl.h |
diff --git a/net/disk_cache/memory/mem_entry_impl.h b/net/disk_cache/memory/mem_entry_impl.h |
deleted file mode 100644 |
index 0d9acbe916c6b2a43c1709858d7540a511f195a9..0000000000000000000000000000000000000000 |
--- a/net/disk_cache/memory/mem_entry_impl.h |
+++ /dev/null |
@@ -1,197 +0,0 @@ |
-// Copyright (c) 2012 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_MEMORY_MEM_ENTRY_IMPL_H_ |
-#define NET_DISK_CACHE_MEMORY_MEM_ENTRY_IMPL_H_ |
- |
-#include "base/containers/hash_tables.h" |
-#include "base/gtest_prod_util.h" |
-#include "base/memory/scoped_ptr.h" |
-#include "net/base/net_log.h" |
-#include "net/disk_cache/disk_cache.h" |
- |
-namespace disk_cache { |
- |
-class MemBackendImpl; |
- |
-// This class implements the Entry interface for the memory-only cache. An |
-// object of this class represents a single entry on the cache. We use two |
-// types of entries, parent and child to support sparse caching. |
-// |
-// A parent entry is non-sparse until a sparse method is invoked (i.e. |
-// ReadSparseData, WriteSparseData, GetAvailableRange) when sparse information |
-// is initialized. It then manages a list of child entries and delegates the |
-// sparse API calls to the child entries. It creates and deletes child entries |
-// and updates the list when needed. |
-// |
-// A child entry is used to carry partial cache content, non-sparse methods like |
-// ReadData and WriteData cannot be applied to them. The lifetime of a child |
-// entry is managed by the parent entry that created it except that the entry |
-// can be evicted independently. A child entry does not have a key and it is not |
-// registered in the backend's entry map. It is registered in the backend's |
-// ranking list to enable eviction of a partial content. |
-// |
-// A sparse entry has a fixed maximum size and can be partially filled. There |
-// can only be one continous filled region in a sparse entry, as illustrated by |
-// the following example: |
-// | xxx ooooo | |
-// x = unfilled region |
-// o = filled region |
-// It is guranteed that there is at most one unfilled region and one filled |
-// region, and the unfilled region (if there is one) is always before the filled |
-// region. The book keeping for filled region in a sparse entry is done by using |
-// the variable |child_first_pos_| (inclusive). |
- |
-class MemEntryImpl : public Entry { |
- public: |
- enum EntryType { |
- kParentEntry, |
- kChildEntry, |
- }; |
- |
- explicit MemEntryImpl(MemBackendImpl* backend); |
- |
- // Performs the initialization of a EntryImpl that will be added to the |
- // cache. |
- bool CreateEntry(const std::string& key, net::NetLog* net_log); |
- |
- // Permanently destroys this entry. |
- void InternalDoom(); |
- |
- void Open(); |
- bool InUse(); |
- |
- MemEntryImpl* next() const { |
- return next_; |
- } |
- |
- MemEntryImpl* prev() const { |
- return prev_; |
- } |
- |
- void set_next(MemEntryImpl* next) { |
- next_ = next; |
- } |
- |
- void set_prev(MemEntryImpl* prev) { |
- prev_ = prev; |
- } |
- |
- EntryType type() const { |
- return parent_ ? kChildEntry : kParentEntry; |
- } |
- |
- const net::BoundNetLog& net_log() { |
- return net_log_; |
- } |
- |
- // Entry interface. |
- void Doom() override; |
- void Close() override; |
- std::string GetKey() const override; |
- base::Time GetLastUsed() const override; |
- base::Time GetLastModified() const override; |
- int32 GetDataSize(int index) const override; |
- int ReadData(int index, |
- int offset, |
- IOBuffer* buf, |
- int buf_len, |
- const CompletionCallback& callback) override; |
- int WriteData(int index, |
- int offset, |
- IOBuffer* buf, |
- int buf_len, |
- const CompletionCallback& callback, |
- bool truncate) override; |
- int ReadSparseData(int64 offset, |
- IOBuffer* buf, |
- int buf_len, |
- const CompletionCallback& callback) override; |
- int WriteSparseData(int64 offset, |
- IOBuffer* buf, |
- int buf_len, |
- const CompletionCallback& callback) override; |
- int GetAvailableRange(int64 offset, |
- int len, |
- int64* start, |
- const CompletionCallback& callback) override; |
- bool CouldBeSparse() const override; |
- void CancelSparseIO() override {} |
- int ReadyForSparseIO(const CompletionCallback& callback) override; |
- |
- private: |
- typedef base::hash_map<int, MemEntryImpl*> EntryMap; |
- |
- enum { |
- NUM_STREAMS = 3 |
- }; |
- |
- ~MemEntryImpl() override; |
- |
- // Do all the work for corresponding public functions. Implemented as |
- // separate functions to make logging of results simpler. |
- int InternalReadData(int index, int offset, IOBuffer* buf, int buf_len); |
- int InternalWriteData(int index, int offset, IOBuffer* buf, int buf_len, |
- bool truncate); |
- int InternalReadSparseData(int64 offset, IOBuffer* buf, int buf_len); |
- int InternalWriteSparseData(int64 offset, IOBuffer* buf, int buf_len); |
- |
- // Old Entry interface. |
- int GetAvailableRange(int64 offset, int len, int64* start); |
- |
- // Grows and cleans up the data buffer. |
- void PrepareTarget(int index, int offset, int buf_len); |
- |
- // Updates ranking information. |
- void UpdateRank(bool modified); |
- |
- // Initializes the children map and sparse info. This method is only called |
- // on a parent entry. |
- bool InitSparseInfo(); |
- |
- // Performs the initialization of a MemEntryImpl as a child entry. |
- // |parent| is the pointer to the parent entry. |child_id| is the ID of |
- // the new child. |
- bool InitChildEntry(MemEntryImpl* parent, int child_id, net::NetLog* net_log); |
- |
- // Returns an entry responsible for |offset|. The returned entry can be a |
- // child entry or this entry itself if |offset| points to the first range. |
- // If such entry does not exist and |create| is true, a new child entry is |
- // created. |
- MemEntryImpl* OpenChild(int64 offset, bool create); |
- |
- // Finds the first child located within the range [|offset|, |offset + len|). |
- // Returns the number of bytes ahead of |offset| to reach the first available |
- // bytes in the entry. The first child found is output to |child|. |
- int FindNextChild(int64 offset, int len, MemEntryImpl** child); |
- |
- // Removes child indexed by |child_id| from the children map. |
- void DetachChild(int child_id); |
- |
- std::string key_; |
- std::vector<char> data_[NUM_STREAMS]; // User data. |
- int32 data_size_[NUM_STREAMS]; |
- int ref_count_; |
- |
- int child_id_; // The ID of a child entry. |
- int child_first_pos_; // The position of the first byte in a child |
- // entry. |
- MemEntryImpl* next_; // Pointers for the LRU list. |
- MemEntryImpl* prev_; |
- MemEntryImpl* parent_; // Pointer to the parent entry. |
- scoped_ptr<EntryMap> children_; |
- |
- base::Time last_modified_; // LRU information. |
- base::Time last_used_; |
- MemBackendImpl* backend_; // Back pointer to the cache. |
- bool doomed_; // True if this entry was removed from the cache. |
- |
- net::BoundNetLog net_log_; |
- |
- DISALLOW_COPY_AND_ASSIGN(MemEntryImpl); |
-}; |
- |
-} // namespace disk_cache |
- |
-#endif // NET_DISK_CACHE_MEMORY_MEM_ENTRY_IMPL_H_ |