1 // Copyright 2014 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.
5 #include "components/user_manager/user_manager.h"
7 #include "base/logging.h"
9 namespace user_manager
{
11 UserManager
* UserManager::instance
= NULL
;
13 UserManager::Observer::~Observer() {
16 void UserManager::Observer::LocalStateChanged(UserManager
* user_manager
) {
19 void UserManager::UserSessionStateObserver::ActiveUserChanged(
20 const User
* active_user
) {
23 void UserManager::UserSessionStateObserver::UserAddedToSession(
24 const User
* active_user
) {
27 void UserManager::UserSessionStateObserver::ActiveUserHashChanged(
28 const std::string
& hash
) {
31 void UserManager::UserSessionStateObserver::UserChangedSupervisedStatus(
35 UserManager::UserSessionStateObserver::~UserSessionStateObserver() {
38 UserManager::UserAccountData::UserAccountData(
39 const base::string16
& display_name
,
40 const base::string16
& given_name
,
41 const std::string
& locale
)
42 : display_name_(display_name
), given_name_(given_name
), locale_(locale
) {
45 UserManager::UserAccountData::~UserAccountData() {
48 void UserManager::Initialize() {
49 DCHECK(!UserManager::instance
);
50 UserManager::SetInstance(this);
54 bool UserManager::IsInitialized() {
55 return UserManager::instance
;
58 void UserManager::Destroy() {
59 DCHECK(UserManager::instance
== this);
60 UserManager::SetInstance(NULL
);
64 UserManager
* user_manager::UserManager::Get() {
65 CHECK(UserManager::instance
);
66 return UserManager::instance
;
69 UserManager::~UserManager() {
73 void UserManager::SetInstance(UserManager
* user_manager
) {
74 UserManager::instance
= user_manager
;
78 UserManager
* user_manager::UserManager::GetForTesting() {
79 return UserManager::instance
;
83 UserManager
* UserManager::SetForTesting(UserManager
* user_manager
) {
84 UserManager
* previous_instance
= UserManager::instance
;
85 UserManager::instance
= user_manager
;
86 return previous_instance
;
89 } // namespace user_manager