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

Side by Side Diff: services/service_manager/public/cpp/lib/service_context.cc

Issue 2420253002: Rename shell namespace to service_manager (Closed)
Patch Set: . Created 4 years, 2 months 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
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 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 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/service_manager/public/cpp/service_context.h" 5 #include "services/service_manager/public/cpp/service_context.h"
6 6
7 #include "base/bind.h" 7 #include "base/bind.h"
8 #include "base/logging.h" 8 #include "base/logging.h"
9 #include "base/message_loop/message_loop.h" 9 #include "base/message_loop/message_loop.h"
10 #include "mojo/public/cpp/bindings/interface_ptr.h" 10 #include "mojo/public/cpp/bindings/interface_ptr.h"
11 #include "mojo/public/cpp/bindings/interface_request.h" 11 #include "mojo/public/cpp/bindings/interface_request.h"
12 #include "services/service_manager/public/cpp/capabilities.h" 12 #include "services/service_manager/public/cpp/capabilities.h"
13 #include "services/service_manager/public/cpp/interface_registry.h" 13 #include "services/service_manager/public/cpp/interface_registry.h"
14 #include "services/service_manager/public/cpp/lib/connector_impl.h" 14 #include "services/service_manager/public/cpp/lib/connector_impl.h"
15 #include "services/service_manager/public/cpp/service.h" 15 #include "services/service_manager/public/cpp/service.h"
16 16
17 namespace shell { 17 namespace service_manager {
18 18
19 //////////////////////////////////////////////////////////////////////////////// 19 ////////////////////////////////////////////////////////////////////////////////
20 // ServiceContext, public: 20 // ServiceContext, public:
21 21
22 ServiceContext::ServiceContext(shell::Service* service, 22 ServiceContext::ServiceContext(service_manager::Service* service,
23 mojom::ServiceRequest request, 23 mojom::ServiceRequest request,
24 std::unique_ptr<Connector> connector, 24 std::unique_ptr<Connector> connector,
25 mojom::ConnectorRequest connector_request) 25 mojom::ConnectorRequest connector_request)
26 : pending_connector_request_(std::move(connector_request)), 26 : pending_connector_request_(std::move(connector_request)),
27 service_(service), 27 service_(service),
28 binding_(this, std::move(request)), 28 binding_(this, std::move(request)),
29 connector_(std::move(connector)) { 29 connector_(std::move(connector)) {
30 DCHECK(binding_.is_bound()); 30 DCHECK(binding_.is_bound());
31 binding_.set_connection_error_handler( 31 binding_.set_connection_error_handler(
32 base::Bind(&ServiceContext::OnConnectionError, base::Unretained(this))); 32 base::Bind(&ServiceContext::OnConnectionError, base::Unretained(this)));
33 if (!connector_) { 33 if (!connector_) {
34 connector_ = Connector::Create(&pending_connector_request_); 34 connector_ = Connector::Create(&pending_connector_request_);
35 } else { 35 } else {
36 DCHECK(pending_connector_request_.is_pending()); 36 DCHECK(pending_connector_request_.is_pending());
37 } 37 }
38 } 38 }
39 39
40 ServiceContext::~ServiceContext() {} 40 ServiceContext::~ServiceContext() {}
41 41
42 void ServiceContext::SetConnectionLostClosure(const base::Closure& closure) { 42 void ServiceContext::SetConnectionLostClosure(const base::Closure& closure) {
43 connection_lost_closure_ = closure; 43 connection_lost_closure_ = closure;
44 if (should_run_connection_lost_closure_ && 44 if (should_run_connection_lost_closure_ &&
45 !connection_lost_closure_.is_null()) 45 !connection_lost_closure_.is_null())
46 connection_lost_closure_.Run(); 46 connection_lost_closure_.Run();
47 } 47 }
48 48
49 //////////////////////////////////////////////////////////////////////////////// 49 ////////////////////////////////////////////////////////////////////////////////
50 // ServiceContext, mojom::Service implementation: 50 // ServiceContext, mojom::Service implementation:
51 51
52 void ServiceContext::OnStart(const shell::Identity& identity, 52 void ServiceContext::OnStart(const service_manager::Identity& identity,
53 const OnStartCallback& callback) { 53 const OnStartCallback& callback) {
54 identity_ = identity; 54 identity_ = identity;
55 if (!initialize_handler_.is_null()) 55 if (!initialize_handler_.is_null())
56 initialize_handler_.Run(); 56 initialize_handler_.Run();
57 57
58 callback.Run(std::move(pending_connector_request_)); 58 callback.Run(std::move(pending_connector_request_));
59 59
60 service_->OnStart(identity_); 60 service_->OnStart(identity_);
61 } 61 }
62 62
(...skipping 23 matching lines...) Expand all
86 // on to service existing connections. All existing Connectors however are 86 // on to service existing connections. All existing Connectors however are
87 // invalid. 87 // invalid.
88 should_run_connection_lost_closure_ = service_->OnStop(); 88 should_run_connection_lost_closure_ = service_->OnStop();
89 if (should_run_connection_lost_closure_ && 89 if (should_run_connection_lost_closure_ &&
90 !connection_lost_closure_.is_null()) 90 !connection_lost_closure_.is_null())
91 connection_lost_closure_.Run(); 91 connection_lost_closure_.Run();
92 // We don't reset the connector as clients may have taken a raw pointer to it. 92 // We don't reset the connector as clients may have taken a raw pointer to it.
93 // Connect() will return nullptr if they try to connect to anything. 93 // Connect() will return nullptr if they try to connect to anything.
94 } 94 }
95 95
96 } // namespace shell 96 } // namespace service_manager
OLDNEW
« no previous file with comments | « services/service_manager/public/cpp/lib/service.cc ('k') | services/service_manager/public/cpp/lib/service_context_ref.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698