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 0ce19d6d6cf91e61a5456747864c1b6fc01bb735..920bd872353109be0d2ca3115098164ac0390df9 100644 |
--- a/components/gcm_driver/gcm_client_impl.h |
+++ b/components/gcm_driver/gcm_client_impl.h |
@@ -6,6 +6,7 @@ |
#define COMPONENTS_GCM_DRIVER_GCM_CLIENT_IMPL_H_ |
#include <map> |
+#include <set> |
#include <string> |
#include <vector> |
@@ -101,6 +102,8 @@ class GCMClientImpl |
virtual void SetRecording(bool recording) OVERRIDE; |
virtual void ClearActivityLogs() OVERRIDE; |
virtual GCMStatistics GetStatistics() const OVERRIDE; |
+ virtual void SetAccountsForCheckin( |
+ const std::map<std::string, std::string>& account_tokens) OVERRIDE; |
// GCMStatsRecorder::Delegate implemenation. |
virtual void OnActivityRecorded() OVERRIDE; |
@@ -127,17 +130,27 @@ class GCMClientImpl |
READY, |
}; |
- // The check-in info for the user. Returned by the server. |
+ // The check-in info for the device. |
+ // TODO(fgorski): Convert to a class with explicit getters/setters. |
struct CheckinInfo { |
- CheckinInfo() : android_id(0), secret(0) {} |
+ CheckinInfo(); |
+ ~CheckinInfo(); |
bool IsValid() const { return android_id != 0 && secret != 0; } |
- void Reset() { |
- android_id = 0; |
- secret = 0; |
- } |
+ void SnapshotCheckinAccounts(); |
+ void Reset(); |
+ // Android ID of the device as assigned by the server. |
uint64 android_id; |
+ // Security token of the device as assigned by the server. |
uint64 secret; |
+ // True if accounts were already provided through SetAccountsForCheckin(), |
+ // or when |last_checkin_accounts| was loaded as empty. |
+ bool accounts_set; |
+ // Map of account email addresses and OAuth2 tokens that will be sent to the |
+ // checkin server on a next checkin. |
+ std::map<std::string, std::string> account_tokens; |
+ // As set of accounts last checkin was completed with. |
+ std::set<std::string> last_checkin_accounts; |
}; |
// Collection of pending registration requests. Keys are app IDs, while values |
@@ -199,8 +212,8 @@ class GCMClientImpl |
void SchedulePeriodicCheckin(); |
// Gets the time until next checkin. |
base::TimeDelta GetTimeToNextCheckin() const; |
- // Callback for setting last checkin time in the |gcm_store_|. |
- void SetLastCheckinTimeCallback(bool success); |
+ // Callback for setting last checkin information in the |gcm_store_|. |
+ void SetLastCheckinInfoCallback(bool success); |
// Callback for persisting device credentials in the |gcm_store_|. |
void SetDeviceCredentialsCallback(bool success); |