root/net/disk_cache/blockfile/mapped_file.cc

/* [<][>][^][v][top][bottom][index][help] */

DEFINITIONS

This source file includes following definitions.
  1. Load
  2. Store
  3. Load
  4. Store
  5. Preload

// 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

/* [<][>][^][v][top][bottom][index][help] */