// 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__