Index: net/disk_cache/blockfile/addr.h |
diff --git a/net/disk_cache/blockfile/addr.h b/net/disk_cache/blockfile/addr.h |
deleted file mode 100644 |
index a5e4367757b54c41c7df93eedefbbd0a16678350..0000000000000000000000000000000000000000 |
--- a/net/disk_cache/blockfile/addr.h |
+++ /dev/null |
@@ -1,188 +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. |
- |
-// This is an internal class that handles the address of a cache record. |
-// See net/disk_cache/disk_cache.h for the public interface of the cache. |
- |
-#ifndef NET_DISK_CACHE_BLOCKFILE_ADDR_H_ |
-#define NET_DISK_CACHE_BLOCKFILE_ADDR_H_ |
- |
-#include "net/base/net_export.h" |
-#include "net/disk_cache/blockfile/disk_format_base.h" |
- |
-namespace disk_cache { |
- |
-enum FileType { |
- EXTERNAL = 0, |
- RANKINGS = 1, |
- BLOCK_256 = 2, |
- BLOCK_1K = 3, |
- BLOCK_4K = 4, |
- BLOCK_FILES = 5, |
- BLOCK_ENTRIES = 6, |
- BLOCK_EVICTED = 7 |
-}; |
- |
-const int kMaxBlockSize = 4096 * 4; |
-const int16 kMaxBlockFile = 255; |
-const int kMaxNumBlocks = 4; |
-const int16 kFirstAdditionalBlockFile = 4; |
-const size_t kFirstAdditionalBlockFileV3 = 7; |
- |
-// Defines a storage address for a cache record |
-// |
-// Header: |
-// 1000 0000 0000 0000 0000 0000 0000 0000 : initialized bit |
-// 0111 0000 0000 0000 0000 0000 0000 0000 : file type |
-// |
-// File type values: |
-// 0 = separate file on disk |
-// 1 = rankings block file |
-// 2 = 256 byte block file |
-// 3 = 1k byte block file |
-// 4 = 4k byte block file |
-// 5 = external files block file |
-// 6 = active entries block file |
-// 7 = evicted entries block file |
-// |
-// If separate file: |
-// 0000 1111 1111 1111 1111 1111 1111 1111 : file# 0 - 268,435,456 (2^28) |
-// |
-// If block file: |
-// 0000 1100 0000 0000 0000 0000 0000 0000 : reserved bits |
-// 0000 0011 0000 0000 0000 0000 0000 0000 : number of contiguous blocks 1-4 |
-// 0000 0000 1111 1111 0000 0000 0000 0000 : file selector 0 - 255 |
-// 0000 0000 0000 0000 1111 1111 1111 1111 : block# 0 - 65,535 (2^16) |
-// |
-// Note that an Addr can be used to "point" to a variety of different objects, |
-// from a given type of entry to random blobs of data. Conceptually, an Addr is |
-// just a number that someone can inspect to find out how to locate the desired |
-// record. Most users will not care about the specific bits inside Addr, for |
-// example, what parts of it point to a file number; only the code that has to |
-// select a specific file would care about those specific bits. |
-// |
-// From a general point of view, an Addr has a total capacity of 2^24 entities, |
-// in that it has 24 bits that can identify individual records. Note that the |
-// address space is bigger for independent files (2^28), but that would not be |
-// the general case. |
-class NET_EXPORT_PRIVATE Addr { |
- public: |
- Addr() : value_(0) {} |
- explicit Addr(CacheAddr address) : value_(address) {} |
- Addr(FileType file_type, int max_blocks, int block_file, int index) { |
- value_ = ((file_type << kFileTypeOffset) & kFileTypeMask) | |
- (((max_blocks - 1) << kNumBlocksOffset) & kNumBlocksMask) | |
- ((block_file << kFileSelectorOffset) & kFileSelectorMask) | |
- (index & kStartBlockMask) | kInitializedMask; |
- } |
- |
- CacheAddr value() const { return value_; } |
- void set_value(CacheAddr address) { |
- value_ = address; |
- } |
- |
- bool is_initialized() const { |
- return (value_ & kInitializedMask) != 0; |
- } |
- |
- bool is_separate_file() const { |
- return (value_ & kFileTypeMask) == 0; |
- } |
- |
- bool is_block_file() const { |
- return !is_separate_file(); |
- } |
- |
- FileType file_type() const { |
- return static_cast<FileType>((value_ & kFileTypeMask) >> kFileTypeOffset); |
- } |
- |
- int FileNumber() const { |
- if (is_separate_file()) |
- return value_ & kFileNameMask; |
- else |
- return ((value_ & kFileSelectorMask) >> kFileSelectorOffset); |
- } |
- |
- int start_block() const; |
- int num_blocks() const; |
- bool SetFileNumber(int file_number); |
- int BlockSize() const { |
- return BlockSizeForFileType(file_type()); |
- } |
- |
- bool operator==(Addr other) const { |
- return value_ == other.value_; |
- } |
- |
- bool operator!=(Addr other) const { |
- return value_ != other.value_; |
- } |
- |
- static int BlockSizeForFileType(FileType file_type) { |
- switch (file_type) { |
- case RANKINGS: |
- return 36; |
- case BLOCK_256: |
- return 256; |
- case BLOCK_1K: |
- return 1024; |
- case BLOCK_4K: |
- return 4096; |
- case BLOCK_FILES: |
- return 8; |
- case BLOCK_ENTRIES: |
- return 104; |
- case BLOCK_EVICTED: |
- return 48; |
- default: |
- return 0; |
- } |
- } |
- |
- static FileType RequiredFileType(int size) { |
- if (size < 1024) |
- return BLOCK_256; |
- else if (size < 4096) |
- return BLOCK_1K; |
- else if (size <= 4096 * 4) |
- return BLOCK_4K; |
- else |
- return EXTERNAL; |
- } |
- |
- static int RequiredBlocks(int size, FileType file_type) { |
- int block_size = BlockSizeForFileType(file_type); |
- return (size + block_size - 1) / block_size; |
- } |
- |
- // Returns true if this address looks like a valid one. |
- bool SanityCheckV2() const; |
- bool SanityCheckV3() const; |
- bool SanityCheckForEntryV2() const; |
- bool SanityCheckForEntryV3() const; |
- bool SanityCheckForRankings() const; |
- |
- private: |
- uint32 reserved_bits() const { |
- return value_ & kReservedBitsMask; |
- } |
- |
- static const uint32 kInitializedMask = 0x80000000; |
- static const uint32 kFileTypeMask = 0x70000000; |
- static const uint32 kFileTypeOffset = 28; |
- static const uint32 kReservedBitsMask = 0x0c000000; |
- static const uint32 kNumBlocksMask = 0x03000000; |
- static const uint32 kNumBlocksOffset = 24; |
- static const uint32 kFileSelectorMask = 0x00ff0000; |
- static const uint32 kFileSelectorOffset = 16; |
- static const uint32 kStartBlockMask = 0x0000FFFF; |
- static const uint32 kFileNameMask = 0x0FFFFFFF; |
- |
- CacheAddr value_; |
-}; |
- |
-} // namespace disk_cache |
- |
-#endif // NET_DISK_CACHE_BLOCKFILE_ADDR_H_ |