• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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 
11 namespace disk_cache {
12 
13 // Note: Most of this class is implemented in platform-specific files.
14 
Load(const FileBlock * block)15 bool MappedFile::Load(const FileBlock* block) {
16   size_t offset = block->offset() + view_size_;
17   return Read(block->buffer(), block->size(), offset);
18 }
19 
Store(const FileBlock * block)20 bool MappedFile::Store(const FileBlock* block) {
21   size_t offset = block->offset() + view_size_;
22   return Write(block->buffer(), block->size(), offset);
23 }
24 
Load(const FileBlock * block,FileIOCallback * callback,bool * completed)25 bool 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 
Store(const FileBlock * block,FileIOCallback * callback,bool * completed)32 bool 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 
Preload()39 bool 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