mapped_file.cc revision e5d81f57cb97b3b6b7fccc9c5610d21eb81db09d
1// Copyright 2013 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#include "net/disk_cache/blockfile/mapped_file.h" 6 7#include <algorithm> 8 9#include "base/memory/scoped_ptr.h" 10 11namespace disk_cache { 12 13// Note: Most of this class is implemented in platform-specific files. 14 15bool MappedFile::Load(const FileBlock* block) { 16 size_t offset = block->offset() + view_size_; 17 return Read(block->buffer(), block->size(), offset); 18} 19 20bool MappedFile::Store(const FileBlock* block) { 21 size_t offset = block->offset() + view_size_; 22 return Write(block->buffer(), block->size(), offset); 23} 24 25bool MappedFile::Load(const FileBlock* block, 26 FileIOCallback* callback, 27 bool* completed) { 28 size_t offset = block->offset() + view_size_; 29 return Read(block->buffer(), block->size(), offset, callback, completed); 30} 31 32bool MappedFile::Store(const FileBlock* block, 33 FileIOCallback* callback, 34 bool* completed) { 35 size_t offset = block->offset() + view_size_; 36 return Write(block->buffer(), block->size(), offset, callback, completed); 37} 38 39bool MappedFile::Preload() { 40 size_t file_len = GetLength(); 41 scoped_ptr<char[]> buf(new char[file_len]); 42 if (!Read(buf.get(), file_len, 0)) 43 return false; 44 return true; 45} 46} // namespace disk_cache 47