Chromium Code Reviews| Index: chrome/browser/policy/cloud/cloud_policy_store.h |
| diff --git a/chrome/browser/policy/cloud/cloud_policy_store.h b/chrome/browser/policy/cloud/cloud_policy_store.h |
| index fee92b7218d9a30f3d35901cd2dc2ff838138904..75cab26069eefc14c484f7d715857c3b02ff50c6 100644 |
| --- a/chrome/browser/policy/cloud/cloud_policy_store.h |
| +++ b/chrome/browser/policy/cloud/cloud_policy_store.h |
| @@ -73,11 +73,23 @@ class CloudPolicyStore { |
| return validation_status_; |
| } |
| + // Returns true if the latest policy loaded was different from the previous |
| + // policy. |
| + bool policy_changed() const { |
|
Mattias Nissler (ping if slow)
2013/08/28 14:20:40
AFAICS, the only user of this is CloudPolicyInvali
Steve Condie
2013/09/07 01:11:20
Opened bug 286613 to track refactoring the policy
|
| + return policy_changed_; |
| + } |
| + |
| // Store a new policy blob. Pending load/store operations will be canceled. |
| // The store operation may proceed asynchronously and observers are notified |
| // once the operation finishes. If successful, OnStoreLoaded() will be invoked |
| // on the observers and the updated policy can be read through policy(). |
| // Errors generate OnStoreError() notifications. |
| + // |invalidation_version| is the invalidation version of the policy to be |
| + // stored. |
| + void Store( |
| + const enterprise_management::PolicyFetchResponse& policy, |
| + int64 invalidation_version); |
| + |
| virtual void Store( |
| const enterprise_management::PolicyFetchResponse& policy) = 0; |
| @@ -93,6 +105,12 @@ class CloudPolicyStore { |
| // Removes the specified observer. |
| void RemoveObserver(Observer* observer); |
| + // The invalidation version of the last policy stored. This value can be read |
| + // by observers to determine which version of the policy is now available. |
| + int64 invalidation_version() { |
| + return invalidation_version_; |
| + } |
| + |
| protected: |
| // Invokes the corresponding callback on all registered observers. |
| void NotifyStoreLoaded(); |
| @@ -110,11 +128,21 @@ class CloudPolicyStore { |
| // Latest validation status. |
| CloudPolicyValidatorBase::Status validation_status_; |
| + // The invalidation version of the last policy stored. |
| + int64 invalidation_version_; |
| + |
| private: |
| // Whether the store has completed asynchronous initialization, which is |
| // triggered by calling Load(). |
| bool is_initialized_; |
| + // Whether latest policy loaded was different from the previous policy. |
| + bool policy_changed_; |
| + |
| + // The hash value of the current policy. This is used to determine when the |
| + // policy changes. |
| + uint32 hash_value_; |
| + |
| ObserverList<Observer, true> observers_; |
| DISALLOW_COPY_AND_ASSIGN(CloudPolicyStore); |