| OLD | NEW |
| 1 // Copyright 2013 The Chromium Authors. All rights reserved. | 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 | 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 CHROME_BROWSER_CHROMEOS_DRIVE_DRIVE_FILE_STREAM_READER_H_ | 5 #ifndef CHROME_BROWSER_CHROMEOS_DRIVE_DRIVE_FILE_STREAM_READER_H_ |
| 6 #define CHROME_BROWSER_CHROMEOS_DRIVE_DRIVE_FILE_STREAM_READER_H_ | 6 #define CHROME_BROWSER_CHROMEOS_DRIVE_DRIVE_FILE_STREAM_READER_H_ |
| 7 | 7 |
| 8 #include <string> | 8 #include <string> |
| 9 | 9 |
| 10 #include "base/basictypes.h" | 10 #include "base/basictypes.h" |
| (...skipping 70 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 81 // invalidate its weak pointers before other members are destroyed. | 81 // invalidate its weak pointers before other members are destroyed. |
| 82 base::WeakPtrFactory<LocalReaderProxy> weak_ptr_factory_; | 82 base::WeakPtrFactory<LocalReaderProxy> weak_ptr_factory_; |
| 83 DISALLOW_COPY_AND_ASSIGN(LocalReaderProxy); | 83 DISALLOW_COPY_AND_ASSIGN(LocalReaderProxy); |
| 84 }; | 84 }; |
| 85 | 85 |
| 86 // The read operation implementation for the file which is being downloaded. | 86 // The read operation implementation for the file which is being downloaded. |
| 87 class NetworkReaderProxy : public ReaderProxy { | 87 class NetworkReaderProxy : public ReaderProxy { |
| 88 public: | 88 public: |
| 89 // If the instance is deleted during the download process, it is necessary | 89 // If the instance is deleted during the download process, it is necessary |
| 90 // to cancel the job. |job_canceller| should be the callback to run the | 90 // to cancel the job. |job_canceller| should be the callback to run the |
| 91 // cancelling. | 91 // cancelling. |full_content_length| is necessary for determining whether the |
| 92 // deletion is done in the middle of download process. |
| 92 NetworkReaderProxy( | 93 NetworkReaderProxy( |
| 93 int64 offset, int64 content_length, const base::Closure& job_canceller); | 94 int64 offset, int64 content_length, int64 full_content_length, |
| 95 const base::Closure& job_canceller); |
| 94 virtual ~NetworkReaderProxy(); | 96 virtual ~NetworkReaderProxy(); |
| 95 | 97 |
| 96 // ReaderProxy overrides. | 98 // ReaderProxy overrides. |
| 97 virtual int Read(net::IOBuffer* buffer, int buffer_length, | 99 virtual int Read(net::IOBuffer* buffer, int buffer_length, |
| 98 const net::CompletionCallback& callback) OVERRIDE; | 100 const net::CompletionCallback& callback) OVERRIDE; |
| 99 virtual void OnGetContent(scoped_ptr<std::string> data) OVERRIDE; | 101 virtual void OnGetContent(scoped_ptr<std::string> data) OVERRIDE; |
| 100 virtual void OnCompleted(FileError error) OVERRIDE; | 102 virtual void OnCompleted(FileError error) OVERRIDE; |
| 101 | 103 |
| 102 private: | 104 private: |
| 103 // The data received from the server, but not yet read. | 105 // The data received from the server, but not yet read. |
| 104 ScopedVector<std::string> pending_data_; | 106 ScopedVector<std::string> pending_data_; |
| 105 | 107 |
| 106 // The number of bytes to be skipped. | 108 // The number of bytes to be skipped. |
| 107 int64 remaining_offset_; | 109 int64 remaining_offset_; |
| 108 | 110 |
| 109 // The number of bytes of remaining data (including the data not yet | 111 // The number of bytes of remaining data (including the data not yet |
| 110 // received from the server). | 112 // received from the server). |
| 111 int64 remaining_content_length_; | 113 int64 remaining_content_length_; |
| 112 | 114 |
| 115 // Flag to remember whether this read request is for reading till the end of |
| 116 // the file. |
| 117 const bool is_full_download_; |
| 118 |
| 113 int error_code_; | 119 int error_code_; |
| 114 | 120 |
| 115 // To support pending Read(), it is necessary to keep its arguments. | 121 // To support pending Read(), it is necessary to keep its arguments. |
| 116 scoped_refptr<net::IOBuffer> buffer_; | 122 scoped_refptr<net::IOBuffer> buffer_; |
| 117 int buffer_length_; | 123 int buffer_length_; |
| 118 net::CompletionCallback callback_; | 124 net::CompletionCallback callback_; |
| 119 | 125 |
| 120 // Keeps the closure to cancel downloading job if necessary. | 126 // Keeps the closure to cancel downloading job if necessary. |
| 121 // Will be reset when the job is completed (regardless whether the job is | 127 // Will be reset when the job is completed (regardless whether the job is |
| 122 // successfully done or not). | 128 // successfully done or not). |
| (...skipping 85 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 208 | 214 |
| 209 // This should remain the last member so it'll be destroyed first and | 215 // This should remain the last member so it'll be destroyed first and |
| 210 // invalidate its weak pointers before other members are destroyed. | 216 // invalidate its weak pointers before other members are destroyed. |
| 211 base::WeakPtrFactory<DriveFileStreamReader> weak_ptr_factory_; | 217 base::WeakPtrFactory<DriveFileStreamReader> weak_ptr_factory_; |
| 212 DISALLOW_COPY_AND_ASSIGN(DriveFileStreamReader); | 218 DISALLOW_COPY_AND_ASSIGN(DriveFileStreamReader); |
| 213 }; | 219 }; |
| 214 | 220 |
| 215 } // namespace drive | 221 } // namespace drive |
| 216 | 222 |
| 217 #endif // CHROME_BROWSER_CHROMEOS_DRIVE_DRIVE_FILE_STREAM_READER_H_ | 223 #endif // CHROME_BROWSER_CHROMEOS_DRIVE_DRIVE_FILE_STREAM_READER_H_ |
| OLD | NEW |