| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #ifndef CONTENT_BROWSER_DOWNLOAD_DOWNLOAD_FILE_IMPL_H_ | 5 #ifndef CONTENT_BROWSER_DOWNLOAD_DOWNLOAD_FILE_IMPL_H_ |
| 6 #define CONTENT_BROWSER_DOWNLOAD_DOWNLOAD_FILE_IMPL_H_ | 6 #define CONTENT_BROWSER_DOWNLOAD_DOWNLOAD_FILE_IMPL_H_ |
| 7 | 7 |
| 8 #include "content/browser/download/download_file.h" | 8 #include "content/browser/download/download_file.h" |
| 9 | 9 |
| 10 #include <stddef.h> | 10 #include <stddef.h> |
| (...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 42 // | 42 // |
| 43 // Note that the DownloadFileImpl automatically reads from the passed in | 43 // Note that the DownloadFileImpl automatically reads from the passed in |
| 44 // stream, and sends updates and status of those reads to the | 44 // stream, and sends updates and status of those reads to the |
| 45 // DownloadDestinationObserver. | 45 // DownloadDestinationObserver. |
| 46 DownloadFileImpl( | 46 DownloadFileImpl( |
| 47 std::unique_ptr<DownloadSaveInfo> save_info, | 47 std::unique_ptr<DownloadSaveInfo> save_info, |
| 48 const base::FilePath& default_downloads_directory, | 48 const base::FilePath& default_downloads_directory, |
| 49 std::unique_ptr<ByteStreamReader> stream_reader, | 49 std::unique_ptr<ByteStreamReader> stream_reader, |
| 50 const std::vector<DownloadItem::ReceivedSlice>& received_slices, | 50 const std::vector<DownloadItem::ReceivedSlice>& received_slices, |
| 51 const net::NetLogWithSource& net_log, | 51 const net::NetLogWithSource& net_log, |
| 52 bool is_sparse_file, | |
| 53 base::WeakPtr<DownloadDestinationObserver> observer); | 52 base::WeakPtr<DownloadDestinationObserver> observer); |
| 54 | 53 |
| 55 ~DownloadFileImpl() override; | 54 ~DownloadFileImpl() override; |
| 56 | 55 |
| 57 // DownloadFile functions. | 56 // DownloadFile functions. |
| 58 void Initialize(const InitializeCallback& callback) override; | 57 void Initialize(const InitializeCallback& callback) override; |
| 59 | 58 |
| 60 void AddByteStream(std::unique_ptr<ByteStreamReader> stream_reader, | 59 void AddByteStream(std::unique_ptr<ByteStreamReader> stream_reader, |
| 61 int64_t offset, | 60 int64_t offset, |
| 62 int64_t length) override; | 61 int64_t length) override; |
| (...skipping 179 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 242 // The default directory for creating the download file. | 241 // The default directory for creating the download file. |
| 243 base::FilePath default_download_directory_; | 242 base::FilePath default_download_directory_; |
| 244 | 243 |
| 245 // Map of the offset and the source stream that represents the slice | 244 // Map of the offset and the source stream that represents the slice |
| 246 // starting from offset. | 245 // starting from offset. |
| 247 SourceStreams source_streams_; | 246 SourceStreams source_streams_; |
| 248 | 247 |
| 249 // Used to trigger progress updates. | 248 // Used to trigger progress updates. |
| 250 std::unique_ptr<base::RepeatingTimer> update_timer_; | 249 std::unique_ptr<base::RepeatingTimer> update_timer_; |
| 251 | 250 |
| 252 // Set to true when multiple byte streams write to the same file. | |
| 253 // The file may contain null bytes(holes) in between of valid data slices. | |
| 254 // TODO(xingliu): Remove this variable. We can use size of |received_slices_| | |
| 255 // to determine if the file is sparse | |
| 256 bool is_sparse_file_; | |
| 257 | |
| 258 // Statistics | 251 // Statistics |
| 259 size_t bytes_seen_; | 252 size_t bytes_seen_; |
| 260 base::TimeDelta disk_writes_time_; | 253 base::TimeDelta disk_writes_time_; |
| 261 base::TimeTicks download_start_; | 254 base::TimeTicks download_start_; |
| 262 RateEstimator rate_estimator_; | 255 RateEstimator rate_estimator_; |
| 263 int num_active_streams_; | 256 int num_active_streams_; |
| 264 bool record_stream_bandwidth_; | 257 bool record_stream_bandwidth_; |
| 265 base::TimeTicks last_update_time_; | 258 base::TimeTicks last_update_time_; |
| 266 size_t bytes_seen_with_parallel_streams_; | 259 size_t bytes_seen_with_parallel_streams_; |
| 267 size_t bytes_seen_without_parallel_streams_; | 260 size_t bytes_seen_without_parallel_streams_; |
| 268 base::TimeDelta download_time_with_parallel_streams_; | 261 base::TimeDelta download_time_with_parallel_streams_; |
| 269 base::TimeDelta download_time_without_parallel_streams_; | 262 base::TimeDelta download_time_without_parallel_streams_; |
| 270 | 263 |
| 271 std::vector<DownloadItem::ReceivedSlice> received_slices_; | 264 std::vector<DownloadItem::ReceivedSlice> received_slices_; |
| 272 | 265 |
| 273 base::WeakPtr<DownloadDestinationObserver> observer_; | 266 base::WeakPtr<DownloadDestinationObserver> observer_; |
| 274 base::WeakPtrFactory<DownloadFileImpl> weak_factory_; | 267 base::WeakPtrFactory<DownloadFileImpl> weak_factory_; |
| 275 | 268 |
| 276 DISALLOW_COPY_AND_ASSIGN(DownloadFileImpl); | 269 DISALLOW_COPY_AND_ASSIGN(DownloadFileImpl); |
| 277 }; | 270 }; |
| 278 | 271 |
| 279 } // namespace content | 272 } // namespace content |
| 280 | 273 |
| 281 #endif // CONTENT_BROWSER_DOWNLOAD_DOWNLOAD_FILE_IMPL_H_ | 274 #endif // CONTENT_BROWSER_DOWNLOAD_DOWNLOAD_FILE_IMPL_H_ |
| OLD | NEW |