Index: public/platform/WebCallbacks.h |
diff --git a/public/platform/WebCallbacks.h b/public/platform/WebCallbacks.h |
index 3491c47426e9e7155a8bb8d3e90174a3c943fbd4..4a81e465f94a35a9007b7655e6012f55f22114ce 100644 |
--- a/public/platform/WebCallbacks.h |
+++ b/public/platform/WebCallbacks.h |
@@ -31,38 +31,100 @@ |
#ifndef WebCallbacks_h |
#define WebCallbacks_h |
+#include "public/platform/WebPrivateOwnPtr.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() {} |
+}; |
+ |
+// WebPrivateOwnPtr<T>&& adapter: defined for migration purpose and should |
+// be deleted in the future. |
+ |
+template <typename S, typename T> |
+class WebCallbacks<WebPrivateOwnPtr<S>&&, WebPrivateOwnPtr<T>&&> { |
+public: |
+ virtual ~WebCallbacks() {} |
+ virtual void onSuccess(WebPrivateOwnPtr<S>&&) {} |
+ void onSuccess(const S& r) { onSuccess(WebPrivateOwnPtr<S>(new S(r))); } |
+ virtual void onError(WebPrivateOwnPtr<T>&&) {} |
+ void onError(const T& e) { onError(WebPrivateOwnPtr<T>(new T(e))); } |
+ |
+ void onSuccess(S* r) { onSuccess(WebPrivateOwnPtr<S>(r)); } |
+ void onError(T* e) { onError(WebPrivateOwnPtr<T>(e)); } |
+}; |
+ |
+template <typename S> |
+class WebCallbacks<WebPrivateOwnPtr<S>&&, void> { |
+public: |
+ virtual ~WebCallbacks() {} |
+ virtual void onSuccess(WebPrivateOwnPtr<S>&&) {} |
+ virtual void onSuccess(const S& r) { onSuccess(WebPrivateOwnPtr<S>(new S(r))); } |
+ virtual void onError() {} |
+ |
+ void onSuccess(S* r) { onSuccess(WebPrivateOwnPtr<S>(r)); } |
+}; |
+ |
+template <typename T> |
+class WebCallbacks<void, WebPrivateOwnPtr<T>&&> { |
+public: |
+ virtual ~WebCallbacks() {} |
+ virtual void onSuccess() {} |
+ virtual void onError(WebPrivateOwnPtr<T>&&) {} |
+ void onError(const T& e) { onError(WebPrivateOwnPtr<T>(new T(e))); } |
+ |
+ void onError(T* e) { onError(WebPrivateOwnPtr<T>(e)); } |
+}; |
+ |
+template <typename T> |
+class WebCallbacks<bool*, WebPrivateOwnPtr<T>&&> { |
+public: |
+ virtual ~WebCallbacks() {} |
+ void onSuccess(bool b) { onSuccess(&b); } |
+ virtual void onError(WebPrivateOwnPtr<T>&&) {} |
+ void onError(const T& e) { onError(WebPrivateOwnPtr<T>(new T(e))); } |
+ |
+ virtual void onSuccess(bool* b) {} |
+ void onError(T* e) { onError(WebPrivateOwnPtr<T>(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 |