Chromium Code Reviews| Index: chrome/browser/policy/cloud/cloud_policy_core.cc |
| diff --git a/chrome/browser/policy/cloud/cloud_policy_core.cc b/chrome/browser/policy/cloud/cloud_policy_core.cc |
| index 68dd1753169f524d787584f53057fa2ebe569e76..061e20c84133e0d6f9227afb04485ad1f1083fd3 100644 |
| --- a/chrome/browser/policy/cloud/cloud_policy_core.cc |
| +++ b/chrome/browser/policy/cloud/cloud_policy_core.cc |
| @@ -15,6 +15,8 @@ |
| namespace policy { |
| +CloudPolicyCore::Observer::~Observer() {} |
| + |
| CloudPolicyCore::CloudPolicyCore(const PolicyNamespaceKey& key, |
| CloudPolicyStore* store) |
| : policy_ns_key_(key), |
| @@ -27,9 +29,12 @@ void CloudPolicyCore::Connect(scoped_ptr<CloudPolicyClient> client) { |
| CHECK(client); |
| client_ = client.Pass(); |
| service_.reset(new CloudPolicyService(policy_ns_key_, client_.get(), store_)); |
| + FOR_EACH_OBSERVER(Observer, observers_, OnCoreConnected(this)); |
| } |
| void CloudPolicyCore::Disconnect() { |
| + if (client_) |
| + FOR_EACH_OBSERVER(Observer, observers_, OnCoreDisconnected(this)); |
|
Mattias Nissler (ping if slow)
2013/09/02 11:54:52
nit: Going by the language, this should run after
Steve Condie
2013/09/03 04:41:56
Renamed to OnCoreDisconnecting.
|
| refresh_delay_.reset(); |
| refresh_scheduler_.reset(); |
| service_.reset(); |
| @@ -48,6 +53,7 @@ void CloudPolicyCore::StartRefreshScheduler() { |
| client_.get(), store_, |
| base::MessageLoop::current()->message_loop_proxy())); |
| UpdateRefreshDelayFromPref(); |
| + FOR_EACH_OBSERVER(Observer, observers_, OnRefreshSchedulerStarted(this)); |
| } |
| } |
| @@ -62,6 +68,14 @@ void CloudPolicyCore::TrackRefreshDelayPref( |
| UpdateRefreshDelayFromPref(); |
| } |
| +void CloudPolicyCore::AddObserver(CloudPolicyCore::Observer* observer) { |
| + observers_.AddObserver(observer); |
| +} |
| + |
| +void CloudPolicyCore::RemoveObserver(CloudPolicyCore::Observer* observer) { |
| + observers_.RemoveObserver(observer); |
| +} |
| + |
| void CloudPolicyCore::UpdateRefreshDelayFromPref() { |
| if (refresh_scheduler_ && refresh_delay_) |
| refresh_scheduler_->SetRefreshDelay(refresh_delay_->GetValue()); |