- add sources.
[platform/framework/web/crosswalk.git] / src / net / disk_cache / mem_rankings.h
1 // Copyright (c) 2010 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 // See net/disk_cache/disk_cache.h for the public interface.
6
7 #ifndef NET_DISK_CACHE_MEM_RANKINGS_H__
8 #define NET_DISK_CACHE_MEM_RANKINGS_H__
9
10 #include "base/basictypes.h"
11
12 namespace disk_cache {
13
14 class MemEntryImpl;
15
16 // This class handles the ranking information for the memory-only cache.
17 class MemRankings {
18  public:
19   MemRankings() : head_(NULL), tail_(NULL) {}
20   ~MemRankings();
21
22   // Inserts a given entry at the head of the queue.
23   void Insert(MemEntryImpl* node);
24
25   // Removes a given entry from the LRU list.
26   void Remove(MemEntryImpl* node);
27
28   // Moves a given entry to the head.
29   void UpdateRank(MemEntryImpl* node);
30
31   // Iterates through the list.
32   MemEntryImpl* GetNext(MemEntryImpl* node);
33   MemEntryImpl* GetPrev(MemEntryImpl* node);
34
35  private:
36   MemEntryImpl* head_;
37   MemEntryImpl* tail_;
38
39   DISALLOW_COPY_AND_ASSIGN(MemRankings);
40 };
41
42 }  // namespace disk_cache
43
44 #endif  // NET_DISK_CACHE_MEM_RANKINGS_H__