diff options
Diffstat (limited to 'content/browser/download/download_file_impl.h')
-rw-r--r-- | content/browser/download/download_file_impl.h | 47 |
1 files changed, 25 insertions, 22 deletions
diff --git a/content/browser/download/download_file_impl.h b/content/browser/download/download_file_impl.h index 64ae527..b3630e5 100644 --- a/content/browser/download/download_file_impl.h +++ b/content/browser/download/download_file_impl.h @@ -14,14 +14,13 @@ #include "base/timer.h" #include "content/browser/download/base_file.h" #include "content/browser/download/byte_stream.h" -#include "content/public/browser/download_save_info.h" +#include "content/browser/download/download_request_handle.h" #include "net/base/net_log.h" struct DownloadCreateInfo; namespace content { class ByteStreamReader; -class DownloadDestinationObserver; class DownloadManager; class PowerSaveBlocker; } @@ -30,27 +29,17 @@ class CONTENT_EXPORT DownloadFileImpl : virtual public content::DownloadFile { public: // Takes ownership of the object pointed to by |request_handle|. // |bound_net_log| will be used for logging the download file's events. - // May be constructed on any thread. All methods besides the constructor - // (including destruction) must occur on the FILE thread. - // - // Note that the DownloadFileImpl automatically reads from the passed in - // stream, and sends updates and status of those reads to the - // DownloadDestinationObserver. - DownloadFileImpl( - const content::DownloadSaveInfo& save_info, - const GURL& url, - const GURL& referrer_url, - int64 received_bytes, - bool calculate_hash, - scoped_ptr<content::ByteStreamReader> stream, - const net::BoundNetLog& bound_net_log, - scoped_ptr<content::PowerSaveBlocker> power_save_blocker, - base::WeakPtr<content::DownloadDestinationObserver> observer); - + DownloadFileImpl(const DownloadCreateInfo* info, + scoped_ptr<content::ByteStreamReader> stream, + DownloadRequestHandleInterface* request_handle, + scoped_refptr<content::DownloadManager> download_manager, + bool calculate_hash, + scoped_ptr<content::PowerSaveBlocker> power_save_blocker, + const net::BoundNetLog& bound_net_log); virtual ~DownloadFileImpl(); // DownloadFile functions. - virtual void Initialize(const InitializeCallback& callback) OVERRIDE; + virtual content::DownloadInterruptReason Initialize() OVERRIDE; virtual void Rename(const FilePath& full_path, bool overwrite_existing_file, const RenameCompletionCallback& callback) OVERRIDE; @@ -63,6 +52,11 @@ class CONTENT_EXPORT DownloadFileImpl : virtual public content::DownloadFile { virtual int64 CurrentSpeed() const OVERRIDE; virtual bool GetHash(std::string* hash) OVERRIDE; virtual std::string GetHashState() OVERRIDE; + virtual void CancelDownloadRequest() OVERRIDE; + virtual int Id() const OVERRIDE; + virtual content::DownloadManager* GetDownloadManager() OVERRIDE; + virtual const content::DownloadId& GlobalId() const OVERRIDE; + virtual std::string DebugString() const OVERRIDE; protected: // For test class overrides. @@ -86,9 +80,20 @@ class CONTENT_EXPORT DownloadFileImpl : virtual public content::DownloadFile { // with DownloadFile and get rid of BaseFile. scoped_ptr<content::ByteStreamReader> stream_reader_; + // The unique identifier for this download, assigned at creation by + // the DownloadFileManager for its internal record keeping. + content::DownloadId id_; + // Used to trigger progress updates. scoped_ptr<base::RepeatingTimer<DownloadFileImpl> > update_timer_; + // The handle to the request information. Used for operations outside the + // download system, specifically canceling a download. + scoped_ptr<DownloadRequestHandleInterface> request_handle_; + + // DownloadManager this download belongs to. + scoped_refptr<content::DownloadManager> download_manager_; + // Statistics size_t bytes_seen_; base::TimeDelta disk_writes_time_; @@ -96,8 +101,6 @@ class CONTENT_EXPORT DownloadFileImpl : virtual public content::DownloadFile { net::BoundNetLog bound_net_log_; - base::WeakPtr<content::DownloadDestinationObserver> observer_; - base::WeakPtrFactory<DownloadFileImpl> weak_factory_; // RAII handle to keep the system from sleeping while we're downloading. |