Chromium Code Reviews| Index: chrome/browser/api/webdata/web_data_results.h |
| diff --git a/chrome/browser/api/webdata/web_data_results.h b/chrome/browser/api/webdata/web_data_results.h |
| index 6d2d5b8c34ccf62f4c335d93000aef13db952c32..7255c542559e66d57f87793f0fc480996f4ff127 100644 |
| --- a/chrome/browser/api/webdata/web_data_results.h |
| +++ b/chrome/browser/api/webdata/web_data_results.h |
| @@ -6,6 +6,9 @@ |
| #define CHROME_BROWSER_API_WEBDATA_WEB_DATA_RESULTS_H_ |
| #include "base/basictypes.h" |
| +#include "base/callback.h" |
| + |
| +class WDTypedResult; |
| // |
| // Result types for WebDataService. |
| @@ -29,6 +32,9 @@ typedef enum { |
| WEB_INTENTS_DEFAULTS_RESULT, // WDResult<std::vector<DefaultWebIntentService>> |
| } WDResultType; |
| + |
| +typedef base::Callback<void(const WDTypedResult*)> DestroyCallback; |
| + |
| // |
| // The top level class for a result. |
| // |
| @@ -41,12 +47,21 @@ class WDTypedResult { |
| return type_; |
| } |
| + void Destroy() const { |
| + if (!callback_.is_null()) { |
| + callback_.Run(this); |
| + } |
| + } |
| + |
| protected: |
| - explicit WDTypedResult(WDResultType type) : type_(type) { |
| + WDTypedResult(WDResultType type, const DestroyCallback& callback) |
|
dhollowa
2013/01/04 23:57:36
It seems reasonable to me in this case to have a t
Cait (Slow)
2013/01/07 17:08:54
Done.
|
| + : type_(type), |
| + callback_(callback) { |
| } |
| private: |
| WDResultType type_; |
| + DestroyCallback callback_; |
| DISALLOW_COPY_AND_ASSIGN(WDTypedResult); |
| }; |
| @@ -54,7 +69,8 @@ class WDTypedResult { |
| template <class T> class WDResult : public WDTypedResult { |
| public: |
| - WDResult(WDResultType type, const T& v) : WDTypedResult(type), value_(v) { |
| + WDResult(WDResultType type, const DestroyCallback& callback, const T& v) |
| + : WDTypedResult(type, callback), value_(v) { |
| } |
| virtual ~WDResult() { |
| @@ -73,7 +89,8 @@ template <class T> class WDResult : public WDTypedResult { |
| template <class T> class WDObjectResult : public WDTypedResult { |
| public: |
| - explicit WDObjectResult(WDResultType type) : WDTypedResult(type) { |
| + WDObjectResult(WDResultType type, const DestroyCallback& callback) |
| + : WDTypedResult(type, callback) { |
| } |
| T* GetValue() const { |