Disable view source for Developer Tools.
[chromium-blink-merge.git] / chrome / browser / media_galleries / linux / snapshot_file_details.cc
blob00995cac28cb063f1b2f00a2eaa13045441f9411
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.
5 #include "chrome/browser/media_galleries/linux/snapshot_file_details.h"
7 #include "base/numerics/safe_conversions.h"
9 ////////////////////////////////////////////////////////////////////////////////
10 // SnapshotRequestInfo //
11 ////////////////////////////////////////////////////////////////////////////////
13 SnapshotRequestInfo::SnapshotRequestInfo(
14 const std::string& device_file_path,
15 const base::FilePath& snapshot_file_path,
16 const MTPDeviceAsyncDelegate::CreateSnapshotFileSuccessCallback&
17 success_callback,
18 const MTPDeviceAsyncDelegate::ErrorCallback& error_callback)
19 : device_file_path(device_file_path),
20 snapshot_file_path(snapshot_file_path),
21 success_callback(success_callback),
22 error_callback(error_callback) {
25 SnapshotRequestInfo::~SnapshotRequestInfo() {
28 ////////////////////////////////////////////////////////////////////////////////
29 // SnapshotFileDetails //
30 ////////////////////////////////////////////////////////////////////////////////
32 SnapshotFileDetails::SnapshotFileDetails(
33 const SnapshotRequestInfo& request_info,
34 const base::PlatformFileInfo& file_info)
35 : request_info_(request_info),
36 file_info_(file_info),
37 bytes_written_(0),
38 error_occurred_(false) {
41 SnapshotFileDetails::~SnapshotFileDetails() {
44 void SnapshotFileDetails::set_error_occurred(bool error) {
45 error_occurred_ = error;
48 bool SnapshotFileDetails::AddBytesWritten(uint32 bytes_written) {
49 if ((bytes_written == 0) ||
50 (bytes_written_ > kuint32max - bytes_written) ||
51 (bytes_written_ + bytes_written > file_info_.size))
52 return false;
54 bytes_written_ += bytes_written;
55 return true;
58 bool SnapshotFileDetails::IsSnapshotFileWriteComplete() const {
59 return !error_occurred_ && (bytes_written_ == file_info_.size);
62 uint32 SnapshotFileDetails::BytesToRead() const {
63 // Read data in 1MB chunks.
64 static const uint32 kReadChunkSize = 1024 * 1024;
65 return std::min(
66 kReadChunkSize,
67 base::checked_cast<uint32>(file_info_.size) - bytes_written_);