Index: components/gcm_driver/gcm_client_impl.h |
diff --git a/components/gcm_driver/gcm_client_impl.h b/components/gcm_driver/gcm_client_impl.h |
index 2db1805d7ea1668a267cfccd947e9103147088f2..382ae282440169467d30cd4191aaa27136b08225 100644 |
--- a/components/gcm_driver/gcm_client_impl.h |
+++ b/components/gcm_driver/gcm_client_impl.h |
@@ -111,9 +111,9 @@ class GCMClientImpl |
GCMClient::Delegate* delegate) override; |
void Start(StartMode start_mode) override; |
void Stop() override; |
- void Register(const std::string& app_id, |
- const std::vector<std::string>& sender_ids) override; |
- void Unregister(const std::string& app_id) override; |
+ void Register(const linked_ptr<RegistrationInfo>& registration_info) override; |
+ void Unregister( |
+ const linked_ptr<RegistrationInfo>& registration_info) override; |
void Send(const std::string& app_id, |
const std::string& receiver_id, |
const OutgoingMessage& message) override; |
@@ -163,23 +163,33 @@ class GCMClientImpl |
std::set<std::string> last_checkin_accounts; |
}; |
- // Collection of pending registration requests. Keys are app IDs, while values |
- // are pending registration requests to obtain a registration ID for |
- // requesting application. |
- typedef std::map<std::string, RegistrationRequest*> |
- PendingRegistrationRequests; |
+ // Collection of pending registration requests. Keys are RegistrationInfo |
+ // instance, while values are pending registration requests to obtain a |
+ // registration ID for requesting application. |
+ typedef std::map<linked_ptr<RegistrationInfo>, |
+ RegistrationRequest*, |
+ RegistrationInfoComparer> PendingRegistrationRequests; |
- // Collection of pending unregistration requests. Keys are app IDs, while |
- // values are pending unregistration requests to disable the registration ID |
- // currently assigned to the application. |
- typedef std::map<std::string, UnregistrationRequest*> |
- PendingUnregistrationRequests; |
+ // Collection of pending unregistration requests. Keys are RegistrationInfo |
+ // instance, while values are pending unregistration requests to disable the |
+ // registration ID currently assigned to the application. |
+ typedef std::map<linked_ptr<RegistrationInfo>, |
+ UnregistrationRequest*, |
+ RegistrationInfoComparer> PendingUnregistrationRequests; |
friend class GCMClientImplTest; |
// Returns text representation of the enum State. |
std::string GetStateString() const; |
+ // Builds RequestInfo that is passed to registration/unregistration requests. |
+ scoped_ptr<RegistrationRequest::RequestInfo> |
+ BuildRegistrationRequestInfo( |
+ const RegistrationInfo& registration_info) const; |
+ scoped_ptr<UnregistrationRequest::RequestInfo> |
+ BuildUnregistrationRequestInfo( |
+ const RegistrationInfo& registration_info) const; |
+ |
// Callbacks for the MCSClient. |
// Receives messages and dispatches them to relevant user delegates. |
void OnMessageReceivedFromMCS(const gcm::MCSMessage& message); |
@@ -245,14 +255,15 @@ class GCMClientImpl |
void ResetStoreCallback(bool success); |
// Completes the registration request. |
- void OnRegisterCompleted(const std::string& app_id, |
- const std::vector<std::string>& sender_ids, |
- RegistrationRequest::Status status, |
- const std::string& registration_id); |
+ void OnRegisterCompleted( |
+ const linked_ptr<RegistrationInfo>& registration_info, |
+ RegistrationRequest::Status status, |
+ const std::string& registration_id); |
// Completes the unregistration request. |
- void OnUnregisterCompleted(const std::string& app_id, |
- UnregistrationRequest::Status status); |
+ void OnUnregisterCompleted( |
+ const linked_ptr<RegistrationInfo>& registration_info, |
+ UnregistrationRequest::Status status); |
// Completes the GCM store destroy request. |
void OnGCMStoreDestroyed(bool success); |