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

Unified Diff: public/platform/modules/background_sync/WebSyncProvider.h

Issue 1311053002: [BackgroundSync] Use appopriate type parameters for WebCallbacks (2/4) (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: 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
« no previous file with comments | « public/platform/modules/background_sync/WebSyncClient.h ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: public/platform/modules/background_sync/WebSyncProvider.h
diff --git a/public/platform/modules/background_sync/WebSyncProvider.h b/public/platform/modules/background_sync/WebSyncProvider.h
index f118589cf972ac0d03d1f4467cc7e21df602bc29..144f4d3e6a3a290c047c56c297b48f945f4717d5 100644
--- a/public/platform/modules/background_sync/WebSyncProvider.h
+++ b/public/platform/modules/background_sync/WebSyncProvider.h
@@ -7,6 +7,7 @@
#include "public/platform/WebCallbacks.h"
#include "public/platform/WebCommon.h"
+#include "public/platform/WebPassOwnPtr.h"
#include "public/platform/WebString.h"
#include "public/platform/WebVector.h"
#include "public/platform/modules/background_sync/WebSyncError.h"
@@ -16,12 +17,78 @@
namespace blink {
class WebServiceWorkerRegistration;
+template <>
+class WebCallbacks<WebPassOwnPtr<WebSyncRegistration>, const WebSyncError&> {
+public:
+ virtual ~WebCallbacks() {}
+ void onSuccess(WebSyncRegistration* r) { onSuccess(adoptWebPtr(r)); }
+ void onError(WebSyncError* e)
+ {
+ onError(*e);
+ delete e;
+ }
+ virtual void onSuccess(WebPassOwnPtr<WebSyncRegistration>) = 0;
+ virtual void onError(const WebSyncError&) = 0;
+};
+using WebSyncRegistrationCallbacks = WebCallbacks<WebPassOwnPtr<WebSyncRegistration>, const WebSyncError&>;
+
+template <>
+class WebCallbacks<bool, const WebSyncError&> {
+public:
+ virtual ~WebCallbacks() {}
+ void onSuccess(bool* r)
+ {
+ onSuccess(*r);
+ delete r;
+ }
+ void onError(WebSyncError* e)
+ {
+ onError(*e);
+ delete e;
+ }
+ virtual void onSuccess(bool) = 0;
+ virtual void onError(const WebSyncError&) = 0;
+};
+using WebSyncNotifyWhenDoneCallbacks = WebCallbacks<bool, const WebSyncError&>;
+using WebSyncUnregistrationCallbacks = WebCallbacks<bool, const WebSyncError&>;
+
+template <>
+class WebCallbacks<const WebVector<WebSyncRegistration*>&, const WebSyncError&> {
+public:
+ virtual ~WebCallbacks() {}
+ void onSuccess(WebVector<WebSyncRegistration*>* r)
+ {
+ onSuccess(*r);
+ delete r;
+ }
+ void onError(WebSyncError* e)
+ {
+ onError(*e);
+ delete e;
+ }
+ virtual void onSuccess(const WebVector<WebSyncRegistration*>&) = 0;
+ virtual void onError(const WebSyncError&) = 0;
+};
+using WebSyncGetRegistrationsCallbacks = WebCallbacks<const WebVector<WebSyncRegistration*>&, const WebSyncError&>;
-using WebSyncRegistrationCallbacks = WebCallbacks<WebSyncRegistration*, WebSyncError*>;
-using WebSyncNotifyWhenDoneCallbacks = WebCallbacks<bool*, WebSyncError*>;
-using WebSyncUnregistrationCallbacks = WebCallbacks<bool*, WebSyncError*>;
-using WebSyncGetRegistrationsCallbacks = WebCallbacks<WebVector<WebSyncRegistration*>*, WebSyncError*>;
-using WebSyncGetPermissionStatusCallbacks = WebCallbacks<WebSyncPermissionStatus*, WebSyncError*>;
+template <>
+class WebCallbacks<WebSyncPermissionStatus, const WebSyncError&> {
+public:
+ virtual ~WebCallbacks() {}
+ void onSuccess(WebSyncPermissionStatus* r)
+ {
+ onSuccess(*r);
+ delete r;
+ }
+ void onError(WebSyncError* e)
+ {
+ onError(*e);
+ delete e;
+ }
+ virtual void onSuccess(WebSyncPermissionStatus) = 0;
+ virtual void onError(const WebSyncError&) = 0;
+};
+using WebSyncGetPermissionStatusCallbacks = WebCallbacks<WebSyncPermissionStatus, const WebSyncError&>;
class WebSyncProvider {
public:
@@ -58,7 +125,7 @@ public:
virtual void notifyWhenDone(int64_t syncId, WebSyncNotifyWhenDoneCallbacks* callbacks)
{
// TODO(jkarlin): After landing both legs of the notifyWhenDone CLs, make this a pure virtual function.
- callbacks->onError(new WebSyncError(WebSyncError::ErrorTypeAbort, "Function not implemented."));
+ callbacks->onError(WebSyncError(WebSyncError::ErrorTypeAbort, "Function not implemented."));
delete callbacks;
}
« no previous file with comments | « public/platform/modules/background_sync/WebSyncClient.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698