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

Unified Diff: components/gcm_driver/gcm_client.h

Issue 2578583002: Provide a mechanism for the GCM driver to send message receipts to GCM.
Patch Set: Adding new file I missed previously. Created 3 years, 11 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: components/gcm_driver/gcm_client.h
diff --git a/components/gcm_driver/gcm_client.h b/components/gcm_driver/gcm_client.h
index c4dd12adc914375e3c8cf118e114589f292a7df5..92e177b8caa75ea58301e6e3e254130c8840e726 100644
--- a/components/gcm_driver/gcm_client.h
+++ b/components/gcm_driver/gcm_client.h
@@ -16,6 +16,7 @@
#include "components/gcm_driver/common/gcm_messages.h"
#include "components/gcm_driver/crypto/gcm_encryption_provider.h"
#include "components/gcm_driver/gcm_activity.h"
+#include "components/gcm_driver/gcm_message_status.h"
#include "components/gcm_driver/registration_info.h"
template <class T> class scoped_refptr;
@@ -139,6 +140,8 @@ class GCMClient {
std::string access_token;
};
+ typedef base::Callback<void(GCMMessageStatus)> MessageReceiptCallback;
Peter Beverloo 2017/01/13 01:46:11 Architecturally, why did you choose to keep this i
Peter Beverloo 2017/01/13 01:46:11 nit: C++11ize using MessageReceiptCallback = base
harkness 2017/01/19 13:20:41 Done.
harkness 2017/01/19 13:20:41 The main architectural reason was to have it in th
+
// A delegate interface that allows the GCMClient instance to interact with
// its caller, i.e. notifying asynchronous event.
class Delegate {
@@ -173,8 +176,10 @@ class GCMClient {
// Called when a message has been received.
// |app_id|: application ID.
// |message|: message received.
+ // |callback|: callback to invoke when processing the message is complete.
virtual void OnMessageReceived(const std::string& app_id,
- const IncomingMessage& message) = 0;
+ const IncomingMessage& message,
+ const MessageReceiptCallback& callback) = 0;
Peter Beverloo 2017/01/13 01:46:11 (This will largely apply to app handlers, but it's
harkness 2017/01/19 13:20:41 Done.
// Called when some messages have been deleted from the server.
// |app_id|: application ID.
@@ -276,6 +281,13 @@ class GCMClient {
const std::string& receiver_id,
const OutgoingMessage& message) = 0;
+ // Send a message to GCM with information about the final status of a
+ // previously received message. This can be run as a result of a callback
+ // being executed from an AppHandler.
+ virtual void SendMessageReceipt(const std::string& message_id,
+ const std::string& app_id,
+ GCMMessageStatus status) = 0;
Peter Beverloo 2017/01/13 01:46:11 This doesn't have to live in the gcm_client.h inte
harkness 2017/01/19 13:20:41 Good point! I've moved it.
+
// Records a decryption failure due to |result| for the |app_id|.
virtual void RecordDecryptionFailure(
const std::string& app_id,

Powered by Google App Engine
This is Rietveld 408576698