| OLD | NEW |
| 1 // Copyright 2016 The Chromium Authors. All rights reserved. | 1 // Copyright 2016 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "services/user/user_shell_client.h" | 5 #include "services/user/user_shell_client.h" |
| 6 | 6 |
| 7 #include "base/bind.h" | 7 #include "base/bind.h" |
| 8 #include "base/memory/ptr_util.h" | 8 #include "base/memory/ptr_util.h" |
| 9 #include "base/memory/weak_ptr.h" | 9 #include "base/memory/weak_ptr.h" |
| 10 #include "components/filesystem/lock_table.h" | 10 #include "components/filesystem/lock_table.h" |
| (...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 62 private: | 62 private: |
| 63 scoped_refptr<base::SingleThreadTaskRunner> task_runner_; | 63 scoped_refptr<base::SingleThreadTaskRunner> task_runner_; |
| 64 | 64 |
| 65 // Variables that are only accessible on the |leveldb_service_runner_| thread. | 65 // Variables that are only accessible on the |leveldb_service_runner_| thread. |
| 66 std::unique_ptr<leveldb::mojom::LevelDBService> leveldb_service_; | 66 std::unique_ptr<leveldb::mojom::LevelDBService> leveldb_service_; |
| 67 mojo::BindingSet<leveldb::mojom::LevelDBService> leveldb_bindings_; | 67 mojo::BindingSet<leveldb::mojom::LevelDBService> leveldb_bindings_; |
| 68 | 68 |
| 69 DISALLOW_COPY_AND_ASSIGN(LevelDBServiceObjects); | 69 DISALLOW_COPY_AND_ASSIGN(LevelDBServiceObjects); |
| 70 }; | 70 }; |
| 71 | 71 |
| 72 std::unique_ptr<shell::ShellClient> CreateUserShellClient( | 72 std::unique_ptr<shell::Service> CreateUserService( |
| 73 scoped_refptr<base::SingleThreadTaskRunner> user_service_runner, | 73 scoped_refptr<base::SingleThreadTaskRunner> user_service_runner, |
| 74 scoped_refptr<base::SingleThreadTaskRunner> leveldb_service_runner, | 74 scoped_refptr<base::SingleThreadTaskRunner> leveldb_service_runner, |
| 75 const base::Closure& quit_closure) { | 75 const base::Closure& quit_closure) { |
| 76 return base::WrapUnique(new UserShellClient( | 76 return base::WrapUnique(new UserShellClient( |
| 77 std::move(user_service_runner), std::move(leveldb_service_runner))); | 77 std::move(user_service_runner), std::move(leveldb_service_runner))); |
| 78 } | 78 } |
| 79 | 79 |
| 80 UserShellClient::UserShellClient( | 80 UserShellClient::UserShellClient( |
| 81 scoped_refptr<base::SingleThreadTaskRunner> user_service_runner, | 81 scoped_refptr<base::SingleThreadTaskRunner> user_service_runner, |
| 82 scoped_refptr<base::SingleThreadTaskRunner> leveldb_service_runner) | 82 scoped_refptr<base::SingleThreadTaskRunner> leveldb_service_runner) |
| 83 : user_service_runner_(std::move(user_service_runner)), | 83 : user_service_runner_(std::move(user_service_runner)), |
| 84 leveldb_service_runner_(std::move(leveldb_service_runner)) {} | 84 leveldb_service_runner_(std::move(leveldb_service_runner)) {} |
| 85 | 85 |
| 86 UserShellClient::~UserShellClient() { | 86 UserShellClient::~UserShellClient() { |
| 87 user_service_runner_->DeleteSoon(FROM_HERE, user_objects_.release()); | 87 user_service_runner_->DeleteSoon(FROM_HERE, user_objects_.release()); |
| 88 leveldb_service_runner_->DeleteSoon(FROM_HERE, leveldb_objects_.release()); | 88 leveldb_service_runner_->DeleteSoon(FROM_HERE, leveldb_objects_.release()); |
| 89 } | 89 } |
| 90 | 90 |
| 91 void UserShellClient::Initialize(shell::Connector* connector, | 91 void UserShellClient::OnStart(shell::Connector* connector, |
| 92 const shell::Identity& identity, | 92 const shell::Identity& identity, |
| 93 uint32_t id) { | 93 uint32_t id) { |
| 94 user_objects_.reset(new UserShellClient::UserServiceObjects( | 94 user_objects_.reset(new UserShellClient::UserServiceObjects( |
| 95 GetUserDirForUserId(identity.user_id()))); | 95 GetUserDirForUserId(identity.user_id()))); |
| 96 leveldb_objects_.reset( | 96 leveldb_objects_.reset( |
| 97 new UserShellClient::LevelDBServiceObjects(leveldb_service_runner_)); | 97 new UserShellClient::LevelDBServiceObjects(leveldb_service_runner_)); |
| 98 } | 98 } |
| 99 | 99 |
| 100 bool UserShellClient::AcceptConnection(shell::Connection* connection) { | 100 bool UserShellClient::OnConnect(shell::Connection* connection) { |
| 101 connection->AddInterface<leveldb::mojom::LevelDBService>(this); | 101 connection->AddInterface<leveldb::mojom::LevelDBService>(this); |
| 102 connection->AddInterface<mojom::UserService>(this); | 102 connection->AddInterface<mojom::UserService>(this); |
| 103 return true; | 103 return true; |
| 104 } | 104 } |
| 105 | 105 |
| 106 void UserShellClient::Create(shell::Connection* connection, | 106 void UserShellClient::Create(shell::Connection* connection, |
| 107 mojom::UserServiceRequest request) { | 107 mojom::UserServiceRequest request) { |
| 108 user_service_runner_->PostTask( | 108 user_service_runner_->PostTask( |
| 109 FROM_HERE, | 109 FROM_HERE, |
| 110 base::Bind(&UserShellClient::UserServiceObjects::OnUserServiceRequest, | 110 base::Bind(&UserShellClient::UserServiceObjects::OnUserServiceRequest, |
| 111 user_objects_->AsWeakPtr(), connection, | 111 user_objects_->AsWeakPtr(), connection, |
| 112 base::Passed(&request))); | 112 base::Passed(&request))); |
| 113 } | 113 } |
| 114 | 114 |
| 115 void UserShellClient::Create(shell::Connection* connection, | 115 void UserShellClient::Create(shell::Connection* connection, |
| 116 leveldb::mojom::LevelDBServiceRequest request) { | 116 leveldb::mojom::LevelDBServiceRequest request) { |
| 117 leveldb_service_runner_->PostTask( | 117 leveldb_service_runner_->PostTask( |
| 118 FROM_HERE, | 118 FROM_HERE, |
| 119 base::Bind( | 119 base::Bind( |
| 120 &UserShellClient::LevelDBServiceObjects::OnLevelDBServiceRequest, | 120 &UserShellClient::LevelDBServiceObjects::OnLevelDBServiceRequest, |
| 121 leveldb_objects_->AsWeakPtr(), connection, | 121 leveldb_objects_->AsWeakPtr(), connection, |
| 122 base::Passed(&request))); | 122 base::Passed(&request))); |
| 123 } | 123 } |
| 124 | 124 |
| 125 } // namespace user_service | 125 } // namespace user_service |
| OLD | NEW |