Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(310)

Side by Side Diff: services/file/file_service.cc

Issue 2476063002: Service Manager: Rework Service and ServiceContext lifetime (Closed)
Patch Set: . Created 4 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « services/file/file_service.h ('k') | services/navigation/navigation.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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/file/file_service.h" 5 #include "services/file/file_service.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"
11 #include "components/leveldb/leveldb_service_impl.h" 11 #include "components/leveldb/leveldb_service_impl.h"
12 #include "services/file/file_system.h" 12 #include "services/file/file_system.h"
13 #include "services/file/user_id_map.h" 13 #include "services/file/user_id_map.h"
14 #include "services/service_manager/public/cpp/connection.h" 14 #include "services/service_manager/public/cpp/connection.h"
15 #include "services/service_manager/public/cpp/interface_registry.h"
16 #include "services/service_manager/public/cpp/service_context.h"
15 17
16 namespace file { 18 namespace file {
17 19
18 class FileService::FileSystemObjects 20 class FileService::FileSystemObjects
19 : public base::SupportsWeakPtr<FileSystemObjects> { 21 : public base::SupportsWeakPtr<FileSystemObjects> {
20 public: 22 public:
21 // Created on the main thread. 23 // Created on the main thread.
22 FileSystemObjects(base::FilePath user_dir) : user_dir_(user_dir) {} 24 FileSystemObjects(base::FilePath user_dir) : user_dir_(user_dir) {}
23 25
24 // Destroyed on the |file_service_runner_|. 26 // Destroyed on the |file_service_runner_|.
(...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after
81 scoped_refptr<base::SingleThreadTaskRunner> file_service_runner, 83 scoped_refptr<base::SingleThreadTaskRunner> file_service_runner,
82 scoped_refptr<base::SingleThreadTaskRunner> leveldb_service_runner) 84 scoped_refptr<base::SingleThreadTaskRunner> leveldb_service_runner)
83 : file_service_runner_(std::move(file_service_runner)), 85 : file_service_runner_(std::move(file_service_runner)),
84 leveldb_service_runner_(std::move(leveldb_service_runner)) {} 86 leveldb_service_runner_(std::move(leveldb_service_runner)) {}
85 87
86 FileService::~FileService() { 88 FileService::~FileService() {
87 file_service_runner_->DeleteSoon(FROM_HERE, file_system_objects_.release()); 89 file_service_runner_->DeleteSoon(FROM_HERE, file_system_objects_.release());
88 leveldb_service_runner_->DeleteSoon(FROM_HERE, leveldb_objects_.release()); 90 leveldb_service_runner_->DeleteSoon(FROM_HERE, leveldb_objects_.release());
89 } 91 }
90 92
91 void FileService::OnStart(const service_manager::ServiceInfo& info) { 93 void FileService::OnStart(service_manager::ServiceContext* context) {
92 file_system_objects_.reset(new FileService::FileSystemObjects( 94 file_system_objects_.reset(new FileService::FileSystemObjects(
93 GetUserDirForUserId(info.identity.user_id()))); 95 GetUserDirForUserId(context->identity().user_id())));
94 leveldb_objects_.reset( 96 leveldb_objects_.reset(
95 new FileService::LevelDBServiceObjects(leveldb_service_runner_)); 97 new FileService::LevelDBServiceObjects(leveldb_service_runner_));
96 } 98 }
97 99
98 bool FileService::OnConnect(const service_manager::ServiceInfo& remote_info, 100 bool FileService::OnConnect(const service_manager::ServiceInfo& remote_info,
99 service_manager::InterfaceRegistry* registry) { 101 service_manager::InterfaceRegistry* registry) {
100 registry->AddInterface<leveldb::mojom::LevelDBService>(this); 102 registry->AddInterface<leveldb::mojom::LevelDBService>(this);
101 registry->AddInterface<mojom::FileSystem>(this); 103 registry->AddInterface<mojom::FileSystem>(this);
102 return true; 104 return true;
103 } 105 }
(...skipping 11 matching lines...) Expand all
115 leveldb::mojom::LevelDBServiceRequest request) { 117 leveldb::mojom::LevelDBServiceRequest request) {
116 leveldb_service_runner_->PostTask( 118 leveldb_service_runner_->PostTask(
117 FROM_HERE, 119 FROM_HERE,
118 base::Bind( 120 base::Bind(
119 &FileService::LevelDBServiceObjects::OnLevelDBServiceRequest, 121 &FileService::LevelDBServiceObjects::OnLevelDBServiceRequest,
120 leveldb_objects_->AsWeakPtr(), remote_identity, 122 leveldb_objects_->AsWeakPtr(), remote_identity,
121 base::Passed(&request))); 123 base::Passed(&request)));
122 } 124 }
123 125
124 } // namespace user_service 126 } // namespace user_service
OLDNEW
« no previous file with comments | « services/file/file_service.h ('k') | services/navigation/navigation.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698