OLD | NEW |
| (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/user_cloud_policy_manager_factory.h" | |
6 | |
7 #include "base/logging.h" | |
8 #include "chrome/browser/policy/user_cloud_policy_manager.h" | |
9 #include "chrome/browser/policy/user_cloud_policy_store.h" | |
10 #include "chrome/browser/profiles/profile_dependency_manager.h" | |
11 | |
12 namespace policy { | |
13 | |
14 // static | |
15 UserCloudPolicyManagerFactory* UserCloudPolicyManagerFactory::GetInstance() { | |
16 return Singleton<UserCloudPolicyManagerFactory>::get(); | |
17 } | |
18 | |
19 // static | |
20 UserCloudPolicyManager* UserCloudPolicyManagerFactory::GetForProfile( | |
21 Profile* profile) { | |
22 return GetInstance()->GetManagerForProfile(profile); | |
23 } | |
24 | |
25 // static | |
26 scoped_ptr<UserCloudPolicyManager> | |
27 UserCloudPolicyManagerFactory::CreateForProfile(Profile* profile, | |
28 bool force_immediate_load) { | |
29 return GetInstance()->CreateManagerForProfile(profile, force_immediate_load); | |
30 } | |
31 | |
32 UserCloudPolicyManagerFactory::UserCloudPolicyManagerFactory() | |
33 : ProfileKeyedBaseFactory("UserCloudPolicyManager", | |
34 ProfileDependencyManager::GetInstance()) {} | |
35 | |
36 UserCloudPolicyManagerFactory::~UserCloudPolicyManagerFactory() {} | |
37 | |
38 UserCloudPolicyManager* UserCloudPolicyManagerFactory::GetManagerForProfile( | |
39 Profile* profile) { | |
40 ManagerMap::const_iterator it = managers_.find(profile); | |
41 return it != managers_.end() ? it->second : NULL; | |
42 } | |
43 | |
44 scoped_ptr<UserCloudPolicyManager> | |
45 UserCloudPolicyManagerFactory::CreateManagerForProfile( | |
46 Profile* profile, | |
47 bool force_immediate_load) { | |
48 scoped_ptr<policy::UserCloudPolicyStore> store( | |
49 policy::UserCloudPolicyStore::Create(profile)); | |
50 if (force_immediate_load) | |
51 store->LoadImmediately(); | |
52 return make_scoped_ptr( | |
53 new policy::UserCloudPolicyManager(profile, store.Pass())); | |
54 } | |
55 | |
56 void UserCloudPolicyManagerFactory::ProfileShutdown(Profile* profile) { | |
57 UserCloudPolicyManager* manager = GetManagerForProfile(profile); | |
58 if (manager) | |
59 manager->Shutdown(); | |
60 } | |
61 | |
62 void UserCloudPolicyManagerFactory::SetEmptyTestingFactory(Profile* profile) {} | |
63 | |
64 void UserCloudPolicyManagerFactory::CreateServiceNow(Profile* profile) {} | |
65 | |
66 void UserCloudPolicyManagerFactory::Register(Profile* profile, | |
67 UserCloudPolicyManager* instance) { | |
68 UserCloudPolicyManager*& entry = managers_[profile]; | |
69 DCHECK(!entry); | |
70 entry = instance; | |
71 } | |
72 | |
73 void UserCloudPolicyManagerFactory::Unregister( | |
74 Profile* profile, | |
75 UserCloudPolicyManager* instance) { | |
76 ManagerMap::iterator entry = managers_.find(profile); | |
77 if (entry != managers_.end()) { | |
78 DCHECK_EQ(instance, entry->second); | |
79 managers_.erase(entry); | |
80 } else { | |
81 NOTREACHED(); | |
82 } | |
83 } | |
84 | |
85 } // namespace policy | |
OLD | NEW |