Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(37)

Side by Side Diff: chrome/browser/policy/cloud/cloud_policy_core.cc

Issue 109743002: Move policy code into components/policy. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: moar fixes Created 7 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
(Empty)
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 #include "chrome/browser/policy/cloud/cloud_policy_core.h"
6
7 #include "base/bind.h"
8 #include "base/bind_helpers.h"
9 #include "base/prefs/pref_service.h"
10 #include "chrome/browser/policy/cloud/cloud_policy_client.h"
11 #include "chrome/browser/policy/cloud/cloud_policy_refresh_scheduler.h"
12 #include "chrome/browser/policy/cloud/cloud_policy_service.h"
13 #include "chrome/browser/policy/cloud/cloud_policy_store.h"
14
15 namespace policy {
16
17 CloudPolicyCore::Observer::~Observer() {}
18
19 CloudPolicyCore::CloudPolicyCore(
20 const PolicyNamespaceKey& key,
21 CloudPolicyStore* store,
22 const scoped_refptr<base::SequencedTaskRunner>& task_runner)
23 : policy_ns_key_(key),
24 store_(store),
25 task_runner_(task_runner) {}
26
27 CloudPolicyCore::~CloudPolicyCore() {}
28
29 void CloudPolicyCore::Connect(scoped_ptr<CloudPolicyClient> client) {
30 CHECK(!client_);
31 CHECK(client);
32 client_ = client.Pass();
33 service_.reset(new CloudPolicyService(policy_ns_key_, client_.get(), store_));
34 FOR_EACH_OBSERVER(Observer, observers_, OnCoreConnected(this));
35 }
36
37 void CloudPolicyCore::Disconnect() {
38 if (client_)
39 FOR_EACH_OBSERVER(Observer, observers_, OnCoreDisconnecting(this));
40 refresh_delay_.reset();
41 refresh_scheduler_.reset();
42 service_.reset();
43 client_.reset();
44 }
45
46 void CloudPolicyCore::RefreshSoon() {
47 if (refresh_scheduler_)
48 refresh_scheduler_->RefreshSoon();
49 }
50
51 void CloudPolicyCore::StartRefreshScheduler() {
52 if (!refresh_scheduler_) {
53 refresh_scheduler_.reset(
54 new CloudPolicyRefreshScheduler(client_.get(), store_, task_runner_));
55 UpdateRefreshDelayFromPref();
56 FOR_EACH_OBSERVER(Observer, observers_, OnRefreshSchedulerStarted(this));
57 }
58 }
59
60 void CloudPolicyCore::TrackRefreshDelayPref(
61 PrefService* pref_service,
62 const std::string& refresh_pref_name) {
63 refresh_delay_.reset(new IntegerPrefMember());
64 refresh_delay_->Init(
65 refresh_pref_name.c_str(), pref_service,
66 base::Bind(&CloudPolicyCore::UpdateRefreshDelayFromPref,
67 base::Unretained(this)));
68 UpdateRefreshDelayFromPref();
69 }
70
71 void CloudPolicyCore::AddObserver(CloudPolicyCore::Observer* observer) {
72 observers_.AddObserver(observer);
73 }
74
75 void CloudPolicyCore::RemoveObserver(CloudPolicyCore::Observer* observer) {
76 observers_.RemoveObserver(observer);
77 }
78
79 void CloudPolicyCore::UpdateRefreshDelayFromPref() {
80 if (refresh_scheduler_ && refresh_delay_)
81 refresh_scheduler_->SetRefreshDelay(refresh_delay_->GetValue());
82 }
83
84 } // namespace policy
OLDNEW
« no previous file with comments | « chrome/browser/policy/cloud/cloud_policy_core.h ('k') | chrome/browser/policy/cloud/cloud_policy_core_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698