Temporarily re-enabling SizeAfterPrefChange test with traces.
[chromium-blink-merge.git] / mojo / public / cpp / application / lib / application.cc
blobd825d8508646e1442c51e196b76c3e82e88c0510
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/public/cpp/application/application.h"
7 namespace mojo {
9 Application::Application() {}
11 Application::Application(ScopedMessagePipeHandle service_provider_handle)
12 : internal::ServiceConnectorBase::Owner(service_provider_handle.Pass()) {
15 Application::Application(MojoHandle service_provider_handle)
16 : internal::ServiceConnectorBase::Owner(
17 mojo::MakeScopedHandle(
18 MessagePipeHandle(service_provider_handle)).Pass()) {}
20 Application::~Application() {
21 for (NameToServiceConnectorMap::iterator i =
22 name_to_service_connector_.begin();
23 i != name_to_service_connector_.end(); ++i) {
24 delete i->second;
26 name_to_service_connector_.clear();
29 void Application::Initialize() {}
31 void Application::AddServiceConnector(
32 internal::ServiceConnectorBase* service_connector) {
33 name_to_service_connector_[service_connector->name()] = service_connector;
34 set_service_connector_owner(service_connector, this);
37 void Application::RemoveServiceConnector(
38 internal::ServiceConnectorBase* service_connector) {
39 NameToServiceConnectorMap::iterator it =
40 name_to_service_connector_.find(service_connector->name());
41 assert(it != name_to_service_connector_.end());
42 delete it->second;
43 name_to_service_connector_.erase(it);
44 if (name_to_service_connector_.empty())
45 service_provider_.reset();
48 void Application::BindServiceProvider(
49 ScopedMessagePipeHandle service_provider_handle) {
50 service_provider_.Bind(service_provider_handle.Pass());
51 service_provider_.set_client(this);
54 void Application::ConnectToService(const mojo::String& url,
55 const mojo::String& name,
56 ScopedMessagePipeHandle client_handle) {
57 internal::ServiceConnectorBase* service_connector =
58 name_to_service_connector_[name];
59 return service_connector->ConnectToService(
60 url, name, client_handle.Pass());
63 } // namespace mojo