Merge Chromium + Blink git repositories
[chromium-blink-merge.git] / mojo / application / public / cpp / lib / service_provider_impl.cc
blob6a9282c418eb57dbe25dc84447973d80ae5e5140
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
3 // found in the LICENSE file.
5 #include "mojo/application/public/cpp/service_provider_impl.h"
7 #include "mojo/application/public/cpp/service_connector.h"
8 #include "mojo/public/cpp/environment/logging.h"
10 namespace mojo {
12 ServiceProviderImpl::ServiceProviderImpl() : binding_(this) {
15 ServiceProviderImpl::ServiceProviderImpl(
16 InterfaceRequest<ServiceProvider> request)
17 : binding_(this, request.Pass()) {
20 ServiceProviderImpl::~ServiceProviderImpl() {
23 void ServiceProviderImpl::Bind(InterfaceRequest<ServiceProvider> request) {
24 binding_.Bind(request.Pass());
27 void ServiceProviderImpl::ConnectToService(
28 const String& service_name,
29 ScopedMessagePipeHandle client_handle) {
30 // TODO(beng): perhaps take app connection thru ctor so that we can pass
31 // ApplicationConnection through?
32 service_connector_registry_.ConnectToService(nullptr, service_name,
33 client_handle.Pass());
36 void ServiceProviderImpl::SetServiceConnectorForName(
37 ServiceConnector* service_connector,
38 const std::string& interface_name) {
39 service_connector_registry_.SetServiceConnectorForName(service_connector,
40 interface_name);
43 } // namespace mojo