| // Copyright (c) 2009 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. |
| |
| #include "net/disk_cache/addr.h" |
| |
| #include "base/logging.h" |
| |
| namespace disk_cache { |
| |
| int Addr::start_block() const { |
| DCHECK(is_block_file()); |
| return value_ & kStartBlockMask; |
| } |
| |
| int Addr::num_blocks() const { |
| DCHECK(is_block_file() || !value_); |
| return ((value_ & kNumBlocksMask) >> kNumBlocksOffset) + 1; |
| } |
| |
| bool Addr::SetFileNumber(int file_number) { |
| DCHECK(is_separate_file()); |
| if (file_number & ~kFileNameMask) |
| return false; |
| value_ = kInitializedMask | file_number; |
| return true; |
| } |
| |
| } // namespace disk_cache |