Index: google_apis/gcm/engine/gservices_settings.h |
diff --git a/google_apis/gcm/engine/gservices_settings.h b/google_apis/gcm/engine/gservices_settings.h |
index 7961ca278447a374505b4ccebd5effb21329ebbe..c2411a5b71352fa2f37488974e0b50273dbb694e 100644 |
--- a/google_apis/gcm/engine/gservices_settings.h |
+++ b/google_apis/gcm/engine/gservices_settings.h |
@@ -21,12 +21,16 @@ namespace gcm { |
// extracting them from checkin response and storing in GCMStore. |
class GCM_EXPORT GServicesSettings { |
public: |
+ typedef std::map<std::string, std::string> SettingsMap; |
jianli
2014/05/13 21:41:52
nit: empty line
fgorski
2014/05/13 23:53:28
Done.
|
// Minimum periodic checkin interval in seconds. |
static const base::TimeDelta MinimumCheckinInterval(); |
// Default checkin URL. |
static const GURL DefaultCheckinURL(); |
+ // Calculates digest of provided settings. |
+ static std::string CalculateDigest(const SettingsMap& settings); |
+ |
GServicesSettings(); |
~GServicesSettings(); |
@@ -39,44 +43,48 @@ class GCM_EXPORT GServicesSettings { |
void UpdateFromLoadResult(const GCMStore::LoadResult& load_result); |
// Gets the settings as a map of string to string for storing. |
- std::map<std::string, std::string> GetSettingsMap() const; |
+ SettingsMap GetSettingsMap() const; |
std::string digest() const { return digest_; } |
- base::TimeDelta checkin_interval() const { return checkin_interval_; } |
+ // Gets the interval at which device should perform a checkin. |
+ base::TimeDelta checkin_interval() const; |
jianli
2014/05/13 21:41:52
Since now we provide more complicated implementati
fgorski
2014/05/13 23:53:28
Done. Applied that to all settings, as they all ha
|
- GURL checkin_url() const { return checkin_url_; } |
+ // Gets a URL to use when checkin in. |
+ GURL checkin_url() const; |
- GURL mcs_main_endpoint() const { return mcs_main_endpoint_; } |
+ // Gets address of main MCS endpoint. |
+ GURL mcs_main_endpoint() const; |
- GURL mcs_fallback_endpoint() const { return mcs_fallback_endpoint_; } |
+ // Gets address of fallback MCS endpoint. |
+ GURL mcs_fallback_endpoint() const; |
- GURL registration_url() const { return registration_url_; } |
+ // Gets a URL to use when registering or unregistering the apps. |
+ GURL registration_url() const; |
private: |
// Parses the |settings| to fill in specific fields. |
// TODO(fgorski): Change to a status variable that can be logged to UMA. |
- bool UpdateSettings(const std::map<std::string, std::string>& settings); |
+ bool UpdateSettings(const SettingsMap& settings); |
+ |
+ // Functions to verify correctnes of newly proposed settings. |
+ bool VerifySettings(const SettingsMap& settings) const; |
+ bool VerifyCheckinInterval(const SettingsMap& settings) const; |
+ bool VerifyCheckinURL(const SettingsMap& settings) const; |
+ bool VerifyMCSEndpoint(const SettingsMap& settings) const; |
+ bool VerifyRegistrationURL(const SettingsMap& settings) const; |
+ |
+ // Settings digest verification. |
+ bool VerifyDigest(const SettingsMap& settings, |
+ const std::string& expected_digest) const; |
// Digest (hash) of the settings, used to check whether settings need update. |
// It is meant to be sent with checkin request, instead of sending the whole |
// settings table. |
std::string digest_; |
- // Time delta between periodic checkins. |
- base::TimeDelta checkin_interval_; |
- |
- // URL that should be used for checkins. |
- GURL checkin_url_; |
- |
- // Main MCS endpoint. |
- GURL mcs_main_endpoint_; |
- |
- // Fallback MCS endpoint. |
- GURL mcs_fallback_endpoint_; |
- |
- // URL that should be used for regisrations and unregistrations. |
- GURL registration_url_; |
+ // G-services settings as provided by checkin response. |
+ SettingsMap settings_; |
// Factory for creating references in callbacks. |
base::WeakPtrFactory<GServicesSettings> weak_ptr_factory_; |