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"
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
,