Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(180)

Unified Diff: public/platform/WebCallbacks.h

Issue 1234603003: CallbackPromiseAdapter types should be more compatible with WebCallbacks (1/3). (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: retry! Created 5 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: public/platform/WebCallbacks.h
diff --git a/public/platform/WebCallbacks.h b/public/platform/WebCallbacks.h
index 3491c47426e9e7155a8bb8d3e90174a3c943fbd4..c402780427c417c3b285b7573150c2707081ac56 100644
--- a/public/platform/WebCallbacks.h
+++ b/public/platform/WebCallbacks.h
@@ -31,38 +31,100 @@
#ifndef WebCallbacks_h
#define WebCallbacks_h
+#include "public/platform/WebPassOwnPtr.h"
+
namespace blink {
template<typename S, typename T>
class WebCallbacks {
public:
- virtual ~WebCallbacks() { }
- virtual void onSuccess(S) { }
- virtual void onError(T) { }
+ virtual ~WebCallbacks() {}
+ virtual void onSuccess(S) {}
+ virtual void onError(T) {}
};
template<typename T>
class WebCallbacks<void, T> {
public:
- virtual ~WebCallbacks() { }
- virtual void onSuccess() { }
- virtual void onError(T) { }
+ virtual ~WebCallbacks() {}
+ virtual void onSuccess() {}
+ virtual void onError(T) {}
};
template<typename S>
class WebCallbacks<S, void> {
public:
- virtual ~WebCallbacks() { }
- virtual void onSuccess(S) { }
- virtual void onError() { }
+ virtual ~WebCallbacks() {}
+ virtual void onSuccess(S) {}
+ virtual void onError() {}
};
template<>
class WebCallbacks<void, void> {
public:
- virtual ~WebCallbacks() { }
- virtual void onSuccess() { }
- virtual void onError() { }
+ virtual ~WebCallbacks() {}
+ virtual void onSuccess() {}
+ virtual void onError() {}
+};
+
+// WebPassOwnPtr<T> adapter: defined for migration purpose and should
+// be deleted in the future.
+
+template <typename S, typename T>
+class WebCallbacks<WebPassOwnPtr<S>, WebPassOwnPtr<T>> {
+public:
+ virtual ~WebCallbacks() {}
+ virtual void onSuccess(WebPassOwnPtr<S>) {}
+ void onSuccess(const S& r) { onSuccess(adoptWebPtr(new S(r))); }
+ virtual void onError(WebPassOwnPtr<T>) {}
+ void onError(const T& e) { onError(adoptWebPtr(new T(e))); }
+
+ void onSuccess(S* r) { onSuccess(adoptWebPtr(r)); }
+ void onError(T* e) { onError(adoptWebPtr(e)); }
+};
+
+template <typename S>
+class WebCallbacks<WebPassOwnPtr<S>, void> {
+public:
+ virtual ~WebCallbacks() {}
+ virtual void onSuccess(WebPassOwnPtr<S>) {}
+ virtual void onSuccess(const S& r) { onSuccess(adoptWebPtr(new S(r))); }
+ virtual void onError() {}
+
+ void onSuccess(S* r) { onSuccess(adoptWebPtr(r)); }
+};
+
+template <typename T>
+class WebCallbacks<void, WebPassOwnPtr<T>> {
+public:
+ virtual ~WebCallbacks() {}
+ virtual void onSuccess() {}
+ virtual void onError(WebPassOwnPtr<T>) {}
+ void onError(const T& e) { onError(adoptWebPtr(new T(e))); }
+
+ void onError(T* e) { onError(adoptWebPtr(e)); }
+};
+
+template <typename T>
+class WebCallbacks<bool*, WebPassOwnPtr<T>> {
+public:
+ virtual ~WebCallbacks() {}
+ void onSuccess(bool b) { onSuccess(&b); }
+ virtual void onError(WebPassOwnPtr<T>) {}
+ void onError(const T& e) { onError(adoptWebPtr(new T(e))); }
+
+ virtual void onSuccess(bool* b) {}
+ void onError(T* e) { onError(adoptWebPtr(e)); }
+};
+
+template <>
+class WebCallbacks<bool*, void> {
+public:
+ virtual ~WebCallbacks<bool*, void>() {}
+ void onSuccess(bool b) { onSuccess(&b); }
+ virtual void onError() {}
+
+ virtual void onSuccess(bool *b) {}
};
} // namespace blink
« no previous file with comments | « Source/modules/serviceworkers/ServiceWorkerWindowClient.cpp ('k') | public/platform/WebGeofencingProvider.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698