Chromium Code Reviews| Index: content/browser/download/download_item.h |
| diff --git a/content/browser/download/download_item.h b/content/browser/download/download_item.h |
| index c51f35e22e2499d236f6f980219704aa881a18c9..ccc85730036cdde48c78baf1edc4500f12164904 100644 |
| --- a/content/browser/download/download_item.h |
| +++ b/content/browser/download/download_item.h |
| @@ -18,6 +18,7 @@ |
| #define CONTENT_BROWSER_DOWNLOAD_DOWNLOAD_ITEM_H_ |
| #pragma once |
| +#include <map> |
| #include <string> |
| #include "base/string16.h" |
| @@ -100,6 +101,13 @@ class CONTENT_EXPORT DownloadItem { |
| virtual ~Observer() {} |
| }; |
| + // Interface for data that can be stored associated with (and owned |
| + // by) an object of this class via GetExternalData/SetExternalData. |
| + class ExternalData { |
| + public: |
| + virtual ~ExternalData() {}; |
| + }; |
| + |
| virtual ~DownloadItem(); |
| virtual void AddObserver(DownloadItem::Observer* observer) = 0; |
| @@ -308,6 +316,20 @@ class CONTENT_EXPORT DownloadItem { |
| // rewrites of the DownloadManager queues. |
| virtual void OffThreadCancel(DownloadFileManager* file_manager) = 0; |
| + // Manage data owned by other subsystems associated with the |
| + // DownloadItem. By custom, key is the address of a |
| + // static char subsystem_specific_string[] = ".."; defined |
| + // in the subsystem, but the only requirement of this interface |
| + // is that the key be unique over all data stored with this |
| + // DownloadItem. |
| + // |
| + // Note that SetExternalData takes ownership of the |
| + // passed object; it will be destroyed when the DownloadItem is. |
| + // If an object is already held by the DownloadItem associated with |
| + // the passed key, it will be destroyed on overwrite. |
|
asanka
2011/12/07 04:10:57
Nit: Should this mention the behavior when the obj
Randy Smith (Not in Mondays)
2011/12/07 18:36:12
Done.
|
| + virtual ExternalData* GetExternalData(const void* key) = 0; |
| + virtual void SetExternalData(const void* key, ExternalData* data) = 0; |
| + |
| virtual std::string DebugString(bool verbose) const = 0; |
| virtual void MockDownloadOpenForTesting() = 0; |