blob: d26cead89aab2064646b598e8b7b0ac5f0520c1e [file] [log] [blame]
// Copyright 2013 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/blockfile/mapped_file.h"
#include <algorithm>
#include "base/memory/scoped_ptr.h"
namespace disk_cache {
// Note: Most of this class is implemented in platform-specific files.
bool MappedFile::Load(const FileBlock* block) {
size_t offset = block->offset() + view_size_;
return Read(block->buffer(), block->size(), offset);
}
bool MappedFile::Store(const FileBlock* block) {
size_t offset = block->offset() + view_size_;
return Write(block->buffer(), block->size(), offset);
}
bool MappedFile::Load(const FileBlock* block,
FileIOCallback* callback,
bool* completed) {
size_t offset = block->offset() + view_size_;
return Read(block->buffer(), block->size(), offset, callback, completed);
}
bool MappedFile::Store(const FileBlock* block,
FileIOCallback* callback,
bool* completed) {
size_t offset = block->offset() + view_size_;
return Write(block->buffer(), block->size(), offset, callback, completed);
}
bool MappedFile::Preload() {
size_t file_len = GetLength();
scoped_ptr<char[]> buf(new char[file_len]);
if (!Read(buf.get(), file_len, 0))
return false;
return true;
}
} // namespace disk_cache