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

Side by Side Diff: chrome/browser/policy/cloud/cloud_policy_store.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_store.h"
6
7 #include "base/logging.h"
8 #include "chrome/browser/policy/cloud/cloud_external_data_manager.h"
9
10 namespace policy {
11
12 CloudPolicyStore::Observer::~Observer() {}
13
14 CloudPolicyStore::CloudPolicyStore()
15 : status_(STATUS_OK),
16 validation_status_(CloudPolicyValidatorBase::VALIDATION_OK),
17 invalidation_version_(0),
18 is_initialized_(false) {}
19
20 CloudPolicyStore::~CloudPolicyStore() {
21 DCHECK(!external_data_manager_);
22 }
23
24 void CloudPolicyStore::Store(
25 const enterprise_management::PolicyFetchResponse& policy,
26 int64 invalidation_version) {
27 invalidation_version_ = invalidation_version;
28 Store(policy);
29 }
30
31 void CloudPolicyStore::AddObserver(CloudPolicyStore::Observer* observer) {
32 observers_.AddObserver(observer);
33 }
34
35 void CloudPolicyStore::RemoveObserver(CloudPolicyStore::Observer* observer) {
36 observers_.RemoveObserver(observer);
37 }
38
39 void CloudPolicyStore::NotifyStoreLoaded() {
40 is_initialized_ = true;
41 // The |external_data_manager_| must be notified first so that when other
42 // observers are informed about the changed policies and try to fetch external
43 // data referenced by these, the |external_data_manager_| has the required
44 // metadata already.
45 if (external_data_manager_)
46 external_data_manager_->OnPolicyStoreLoaded();
47 FOR_EACH_OBSERVER(Observer, observers_, OnStoreLoaded(this));
48 }
49
50 void CloudPolicyStore::NotifyStoreError() {
51 is_initialized_ = true;
52 FOR_EACH_OBSERVER(Observer, observers_, OnStoreError(this));
53 }
54
55 void CloudPolicyStore::SetExternalDataManager(
56 base::WeakPtr<CloudExternalDataManager> external_data_manager) {
57 DCHECK(!external_data_manager_);
58 external_data_manager_ = external_data_manager;
59 if (is_initialized_)
60 external_data_manager_->OnPolicyStoreLoaded();
61 }
62
63 void CloudPolicyStore::SetPolicyMapForTesting(const PolicyMap& policy_map) {
64 policy_map_.CopyFrom(policy_map);
65 NotifyStoreLoaded();
66 }
67
68 } // namespace policy
OLDNEW
« no previous file with comments | « chrome/browser/policy/cloud/cloud_policy_store.h ('k') | chrome/browser/policy/cloud/cloud_policy_validator.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698