| 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 7924e3f53f0f76fc91a2690654e452dc9f458b0d..87e13c8d08987c8acc0480b76f33e07acefbbfb6 100644
|
| --- a/chrome/browser/api/webdata/web_data_results.h
|
| +++ b/chrome/browser/api/webdata/web_data_results.h
|
| @@ -40,27 +40,24 @@ typedef base::Callback<void(const WDTypedResult*)> DestroyCallback;
|
| //
|
| class WDTypedResult {
|
| public:
|
| - virtual ~WDTypedResult();
|
| + virtual ~WDTypedResult() {
|
| + }
|
|
|
| // Return the result type.
|
| WDResultType GetType() const {
|
| return type_;
|
| }
|
|
|
| - void Destroy() const {
|
| - if (!callback_.is_null()) {
|
| - callback_.Run(this);
|
| - }
|
| + virtual void Destroy() {
|
| }
|
|
|
| protected:
|
| - explicit WDTypedResult(WDResultType type);
|
| -
|
| - WDTypedResult(WDResultType type, const DestroyCallback& callback);
|
| + explicit WDTypedResult(WDResultType type)
|
| + : type_(type) {
|
| + }
|
|
|
| private:
|
| WDResultType type_;
|
| - DestroyCallback callback_;
|
| DISALLOW_COPY_AND_ASSIGN(WDTypedResult);
|
| };
|
|
|
| @@ -71,10 +68,6 @@ template <class T> class WDResult : public WDTypedResult {
|
| : WDTypedResult(type), value_(v) {
|
| }
|
|
|
| - WDResult(WDResultType type, const DestroyCallback& callback, const T& v)
|
| - : WDTypedResult(type, callback), value_(v) {
|
| - }
|
| -
|
| virtual ~WDResult() {
|
| }
|
|
|
| @@ -89,16 +82,45 @@ template <class T> class WDResult : public WDTypedResult {
|
| DISALLOW_COPY_AND_ASSIGN(WDResult);
|
| };
|
|
|
| +template <class T> class WDDestroyableResult : public WDTypedResult {
|
| + public:
|
| + WDDestroyableResult(
|
| + WDResultType type,
|
| + const T& v,
|
| + const DestroyCallback& callback)
|
| + : WDTypedResult(type),
|
| + value_(v),
|
| + callback_(callback) {
|
| + }
|
| +
|
| + virtual ~WDDestroyableResult() {
|
| + }
|
| +
|
| +
|
| + virtual void Destroy() OVERRIDE {
|
| + if (!callback_.is_null()) {
|
| + callback_.Run(this);
|
| + }
|
| + }
|
| +
|
| + // Return a single value result.
|
| + T GetValue() const {
|
| + return value_;
|
| + }
|
| +
|
| + private:
|
| + T value_;
|
| + DestroyCallback callback_;
|
| +
|
| + DISALLOW_COPY_AND_ASSIGN(WDDestroyableResult);
|
| +};
|
| +
|
| 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 {
|
| return &value_;
|
| }
|
|
|