| // Copyright (c) 2010 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. |
| |
| // See net/disk_cache/disk_cache.h for the public interface. |
| |
| #ifndef NET_DISK_CACHE_MEM_RANKINGS_H__ |
| #define NET_DISK_CACHE_MEM_RANKINGS_H__ |
| #pragma once |
| |
| #include "base/basictypes.h" |
| |
| namespace disk_cache { |
| |
| class MemEntryImpl; |
| |
| // This class handles the ranking information for the memory-only cache. |
| class MemRankings { |
| public: |
| MemRankings() : head_(NULL), tail_(NULL) {} |
| ~MemRankings(); |
| |
| // Inserts a given entry at the head of the queue. |
| void Insert(MemEntryImpl* node); |
| |
| // Removes a given entry from the LRU list. |
| void Remove(MemEntryImpl* node); |
| |
| // Moves a given entry to the head. |
| void UpdateRank(MemEntryImpl* node); |
| |
| // Iterates through the list. |
| MemEntryImpl* GetNext(MemEntryImpl* node); |
| MemEntryImpl* GetPrev(MemEntryImpl* node); |
| |
| private: |
| MemEntryImpl* head_; |
| MemEntryImpl* tail_; |
| |
| DISALLOW_COPY_AND_ASSIGN(MemRankings); |
| }; |
| |
| } // namespace disk_cache |
| |
| #endif // NET_DISK_CACHE_MEM_RANKINGS_H__ |