16e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)// Copyright 2014 The Chromium Authors. All rights reserved. 26e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be 36e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)// found in the LICENSE file. 46e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles) 56e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)#include "components/user_manager/user_manager.h" 66e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles) 76e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)#include "base/logging.h" 86e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles) 96e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)namespace user_manager { 106e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles) 116e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)UserManager* UserManager::instance = NULL; 126e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles) 136e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)UserManager::Observer::~Observer() { 146e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)} 156e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles) 166e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)void UserManager::Observer::LocalStateChanged(UserManager* user_manager) { 176e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)} 186e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles) 196e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)void UserManager::UserSessionStateObserver::ActiveUserChanged( 206e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles) const User* active_user) { 216e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)} 226e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles) 236e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)void UserManager::UserSessionStateObserver::UserAddedToSession( 246e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles) const User* active_user) { 256e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)} 266e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles) 276e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)void UserManager::UserSessionStateObserver::ActiveUserHashChanged( 286e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles) const std::string& hash) { 296e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)} 306e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles) 316e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)UserManager::UserSessionStateObserver::~UserSessionStateObserver() { 326e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)} 336e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles) 346e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)UserManager::UserAccountData::UserAccountData( 356e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles) const base::string16& display_name, 366e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles) const base::string16& given_name, 376e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles) const std::string& locale) 386e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles) : display_name_(display_name), given_name_(given_name), locale_(locale) { 396e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)} 406e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles) 416e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)UserManager::UserAccountData::~UserAccountData() { 426e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)} 436e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles) 446e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)void UserManager::Initialize() { 456e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles) DCHECK(!UserManager::instance); 466e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles) UserManager::SetInstance(this); 476e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)} 486e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles) 496e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)// static 506e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)bool UserManager::IsInitialized() { 516e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles) return UserManager::instance; 526e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)} 536e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles) 546e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)void UserManager::Destroy() { 556e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles) DCHECK(UserManager::instance == this); 566e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles) UserManager::SetInstance(NULL); 576e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)} 586e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles) 596e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)// static 606e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)UserManager* user_manager::UserManager::Get() { 616e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles) CHECK(UserManager::instance); 626e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles) return UserManager::instance; 636e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)} 646e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles) 656e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)UserManager::~UserManager() { 666e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)} 676e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles) 686e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)// static 696e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)void UserManager::SetInstance(UserManager* user_manager) { 706e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles) UserManager::instance = user_manager; 716e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)} 726e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles) 736e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)// static 746e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)UserManager* user_manager::UserManager::GetForTesting() { 756e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles) return UserManager::instance; 766e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)} 776e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles) 786e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)// static 796e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)UserManager* UserManager::SetForTesting(UserManager* user_manager) { 806e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles) UserManager* previous_instance = UserManager::instance; 816e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles) UserManager::instance = user_manager; 826e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles) return previous_instance; 836e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)} 846e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles) 856e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)} // namespace user_manager 86