OLD | NEW |
---|---|
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 // The cache is stored on disk as a collection of block-files, plus an index | 5 // The cache is stored on disk as a collection of block-files, plus an index |
6 // file plus a collection of external files. | 6 // file plus a collection of external files. |
7 // | 7 // |
8 // Any data blob bigger than kMaxBlockSize (disk_cache/addr.h) will be stored in | 8 // Any data blob bigger than kMaxBlockSize (disk_cache/addr.h) will be stored in |
9 // a separate file named f_xxx where x is a hexadecimal number. Shorter data | 9 // a separate file named f_xxx where x is a hexadecimal number. Shorter data |
10 // will be stored as a series of blocks on a block-file. In any case, CacheAddr | 10 // will be stored as a series of blocks on a block-file. In any case, CacheAddr |
(...skipping 98 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
109 int32 key_len; | 109 int32 key_len; |
110 CacheAddr long_key; // Optional address of a long key. | 110 CacheAddr long_key; // Optional address of a long key. |
111 int32 data_size[4]; // We can store up to 4 data streams for each | 111 int32 data_size[4]; // We can store up to 4 data streams for each |
112 CacheAddr data_addr[4]; // entry. | 112 CacheAddr data_addr[4]; // entry. |
113 uint32 flags; // Any combination of EntryFlags. | 113 uint32 flags; // Any combination of EntryFlags. |
114 int32 pad[4]; | 114 int32 pad[4]; |
115 uint32 self_hash; // The hash of EntryStore up to this point. | 115 uint32 self_hash; // The hash of EntryStore up to this point. |
116 char key[256 - 24 * 4]; // null terminated | 116 char key[256 - 24 * 4]; // null terminated |
117 }; | 117 }; |
118 | 118 |
119 COMPILE_ASSERT(sizeof(EntryStore) == 256, bad_EntyStore); | 119 static_assert(sizeof(EntryStore) == 256, "bad EntyStore"); |
Deprecated (see juliatuttle)
2015/01/05 22:22:38
Fix typo ("EntyStore" -> "EntryStore") while you'r
Mostyn Bramley-Moore
2015/01/06 00:07:07
Done.
| |
120 const int kMaxInternalKeyLength = 4 * sizeof(EntryStore) - | 120 const int kMaxInternalKeyLength = 4 * sizeof(EntryStore) - |
121 offsetof(EntryStore, key) - 1; | 121 offsetof(EntryStore, key) - 1; |
122 | 122 |
123 // Possible states for a given entry. | 123 // Possible states for a given entry. |
124 enum EntryState { | 124 enum EntryState { |
125 ENTRY_NORMAL = 0, | 125 ENTRY_NORMAL = 0, |
126 ENTRY_EVICTED, // The entry was recently evicted from the cache. | 126 ENTRY_EVICTED, // The entry was recently evicted from the cache. |
127 ENTRY_DOOMED // The entry was doomed. | 127 ENTRY_DOOMED // The entry was doomed. |
128 }; | 128 }; |
129 | 129 |
130 // Flags that can be applied to an entry. | 130 // Flags that can be applied to an entry. |
131 enum EntryFlags { | 131 enum EntryFlags { |
132 PARENT_ENTRY = 1, // This entry has children (sparse) entries. | 132 PARENT_ENTRY = 1, // This entry has children (sparse) entries. |
133 CHILD_ENTRY = 1 << 1 // Child entry that stores sparse data. | 133 CHILD_ENTRY = 1 << 1 // Child entry that stores sparse data. |
134 }; | 134 }; |
135 | 135 |
136 #pragma pack(push, 4) | 136 #pragma pack(push, 4) |
137 // Rankings information for a given entry. | 137 // Rankings information for a given entry. |
138 struct RankingsNode { | 138 struct RankingsNode { |
139 uint64 last_used; // LRU info. | 139 uint64 last_used; // LRU info. |
140 uint64 last_modified; // LRU info. | 140 uint64 last_modified; // LRU info. |
141 CacheAddr next; // LRU list. | 141 CacheAddr next; // LRU list. |
142 CacheAddr prev; // LRU list. | 142 CacheAddr prev; // LRU list. |
143 CacheAddr contents; // Address of the EntryStore. | 143 CacheAddr contents; // Address of the EntryStore. |
144 int32 dirty; // The entry is being modifyied. | 144 int32 dirty; // The entry is being modifyied. |
145 uint32 self_hash; // RankingsNode's hash. | 145 uint32 self_hash; // RankingsNode's hash. |
146 }; | 146 }; |
147 #pragma pack(pop) | 147 #pragma pack(pop) |
148 | 148 |
149 COMPILE_ASSERT(sizeof(RankingsNode) == 36, bad_RankingsNode); | 149 static_assert(sizeof(RankingsNode) == 36, "bad RankingsNode"); |
150 | 150 |
151 } // namespace disk_cache | 151 } // namespace disk_cache |
152 | 152 |
153 #endif // NET_DISK_CACHE_BLOCKFILE_DISK_FORMAT_H_ | 153 #endif // NET_DISK_CACHE_BLOCKFILE_DISK_FORMAT_H_ |
OLD | NEW |