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