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); |