Chromium Code Reviews| Index: chrome/browser/download/download_request_handle.h |
| diff --git a/chrome/browser/download/download_request_handle.h b/chrome/browser/download/download_request_handle.h |
| new file mode 100644 |
| index 0000000000000000000000000000000000000000..0c2bab2dbc56066a61686a1534e5030e81119bfc |
| --- /dev/null |
| +++ b/chrome/browser/download/download_request_handle.h |
| @@ -0,0 +1,70 @@ |
| +// Copyright (c) 2011 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. |
| + |
| +#ifndef CHROME_BROWSER_DOWNLOAD_DOWNLOAD_REQUEST_HANDLE_H_ |
| +#define CHROME_BROWSER_DOWNLOAD_DOWNLOAD_REQUEST_HANDLE_H_ |
| +#pragma once |
| + |
| +#include <string> |
| + |
| +class DownloadManager; |
| +class ResourceDispatcherHost; |
| +class TabContents; |
| + |
| +// A handle used by the download system for operations on the URLRequest |
| +// or objects conditional on it (e.g. TabContents). |
| +// This class needs to be copyable, so we can pass it across threads and not |
| +// worry about lifetime or const-ness. |
| +class DownloadRequestHandle { |
| + public: |
| + |
|
Paweł Hajdan Jr.
2011/06/08 09:36:58
nit: Remove empty line.
Randy Smith (Not in Mondays)
2011/06/09 13:17:43
Done.
|
| + // Create a null DownloadRequestHandle; getters return null, and no |
| + // actions are allowed. |
| + DownloadRequestHandle(); |
| + |
| + // Note that rdh is required to be non-null. |
|
Paweł Hajdan Jr.
2011/06/08 09:36:58
nit: |rdh|
Randy Smith (Not in Mondays)
2011/06/09 13:17:43
Done.
|
| + DownloadRequestHandle(ResourceDispatcherHost* rdh, |
| + int child_id, |
| + int render_view_id, |
| + int request_id); |
| + |
| + // These functions must be called on the UI thread. |
| + TabContents* GetTabContents() const; |
| + DownloadManager* GetDownloadManager() const; |
| + |
| + // Pause or resume the matching URL request. |
| + void PauseRequest(); |
| + void ResumeRequest(); |
| + |
| + // Cancel the request |
| + void CancelRequest(); |
| + |
| + std::string DebugString() const; |
| + |
| + private: |
| + friend class DownloadFileTest; |
| + |
| + // Some unit tests don't setup the ResourceDispatcherHost; for these |
| + // tests we allow the creation of a no-op DownloadRequestHandle which |
| + // returns null and no-ops the handle actions. |
| + static DownloadRequestHandle GetNopDownloadRequestHandle(); |
| + |
| + // Helper functions for distinguishing special DownloadRequestHandles |
| + bool IsNull() const; |
| + bool IsNop() const; |
| + |
| + // The resource dispatcher host. |
| + ResourceDispatcherHost* rdh_; |
| + |
| + // The ID of the child process that started the download. |
| + int child_id_; |
| + |
| + // The ID of the render view that started the download. |
| + int render_view_id_; |
| + |
| + // The ID associated with the request used for the download. |
| + int request_id_; |
| +}; |
| + |
| +#endif // CHROME_BROWSER_DOWNLOAD_DOWNLOAD_REQUEST_HANDLE_H_ |