• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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/chromeos/login/mount_manager.h"
6 
7 #include "chrome/browser/chromeos/login/user_manager.h"
8 #include "chrome/browser/chromeos/profiles/profile_helper.h"
9 
10 namespace chromeos {
11 
Get()12 MountManager* MountManager::Get() {
13   if (!instance_)
14     instance_ = new MountManager();
15   return instance_;
16 }
17 
18 // static
19 MountManager* MountManager::instance_ = NULL;
20 
GetHomeDir(std::string & user_hash)21 base::FilePath MountManager::GetHomeDir(std::string& user_hash) {
22   return ProfileHelper::GetProfilePathByUserIdHash(user_hash);
23 }
24 
MountManager()25 MountManager::MountManager() {}
26 
~MountManager()27 MountManager::~MountManager() {}
28 
IsMounted(const std::string & user_id)29 bool MountManager::IsMounted(const std::string& user_id) {
30   UserToPathMap::iterator i(additional_mounts_.find(user_id));
31   return i != additional_mounts_.end();
32 }
33 
GetPath(const std::string & user_id)34 base::FilePath MountManager::GetPath(const std::string& user_id) {
35   UserToPathMap::iterator i(additional_mounts_.find(user_id));
36   DCHECK(i != additional_mounts_.end());
37   return (i == additional_mounts_.end()) ? base::FilePath() : i->second;
38 }
39 
SetPath(const std::string & user_id,const base::FilePath & path)40 void MountManager::SetPath(const std::string& user_id,
41                            const base::FilePath& path) {
42   additional_mounts_[user_id] = path;
43 }
44 
DeletePath(const std::string & user_id)45 void MountManager::DeletePath(const std::string& user_id) {
46   additional_mounts_.erase(user_id);
47 }
48 
49 }  // namespace chromeos
50