| OLD | NEW |
| 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 "content/common/service_manager/service_manager_connection_impl.h" | 5 #include "content/common/service_manager/service_manager_connection_impl.h" |
| 6 | 6 |
| 7 #include <queue> | 7 #include <queue> |
| 8 #include <utility> | 8 #include <utility> |
| 9 #include <vector> | 9 #include <vector> |
| 10 | 10 |
| (...skipping 421 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 432 base::Bind(&ServiceManagerConnectionImpl::OnContextInitialized, | 432 base::Bind(&ServiceManagerConnectionImpl::OnContextInitialized, |
| 433 weak_factory_.GetWeakPtr()), | 433 weak_factory_.GetWeakPtr()), |
| 434 base::Bind(&ServiceManagerConnectionImpl::OnConnect, | 434 base::Bind(&ServiceManagerConnectionImpl::OnConnect, |
| 435 weak_factory_.GetWeakPtr()), | 435 weak_factory_.GetWeakPtr()), |
| 436 base::Bind(&ServiceManagerConnectionImpl::CreateService, | 436 base::Bind(&ServiceManagerConnectionImpl::CreateService, |
| 437 weak_factory_.GetWeakPtr()), | 437 weak_factory_.GetWeakPtr()), |
| 438 base::Bind(&ServiceManagerConnectionImpl::OnConnectionLost, | 438 base::Bind(&ServiceManagerConnectionImpl::OnConnectionLost, |
| 439 weak_factory_.GetWeakPtr())); | 439 weak_factory_.GetWeakPtr())); |
| 440 } | 440 } |
| 441 | 441 |
| 442 void ServiceManagerConnectionImpl::SetInitializeHandler( | |
| 443 const base::Closure& handler) { | |
| 444 DCHECK(initialize_handler_.is_null()); | |
| 445 initialize_handler_ = handler; | |
| 446 } | |
| 447 | |
| 448 service_manager::Connector* ServiceManagerConnectionImpl::GetConnector() { | 442 service_manager::Connector* ServiceManagerConnectionImpl::GetConnector() { |
| 449 return connector_.get(); | 443 return connector_.get(); |
| 450 } | 444 } |
| 451 | 445 |
| 452 const service_manager::Identity& ServiceManagerConnectionImpl::GetIdentity() | 446 const service_manager::Identity& ServiceManagerConnectionImpl::GetIdentity() |
| 453 const { | 447 const { |
| 454 return identity_; | 448 return identity_; |
| 455 } | 449 } |
| 456 | 450 |
| 457 void ServiceManagerConnectionImpl::SetConnectionLostClosure( | 451 void ServiceManagerConnectionImpl::SetConnectionLostClosure( |
| (...skipping 58 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 516 service_manager::mojom::ServiceRequest request, | 510 service_manager::mojom::ServiceRequest request, |
| 517 const std::string& name) { | 511 const std::string& name) { |
| 518 auto it = request_handlers_.find(name); | 512 auto it = request_handlers_.find(name); |
| 519 if (it != request_handlers_.end()) | 513 if (it != request_handlers_.end()) |
| 520 it->second.Run(std::move(request)); | 514 it->second.Run(std::move(request)); |
| 521 } | 515 } |
| 522 | 516 |
| 523 void ServiceManagerConnectionImpl::OnContextInitialized( | 517 void ServiceManagerConnectionImpl::OnContextInitialized( |
| 524 const service_manager::Identity& identity) { | 518 const service_manager::Identity& identity) { |
| 525 identity_ = identity; | 519 identity_ = identity; |
| 526 if (!initialize_handler_.is_null()) | |
| 527 base::ResetAndReturn(&initialize_handler_).Run(); | |
| 528 } | 520 } |
| 529 | 521 |
| 530 void ServiceManagerConnectionImpl::OnConnectionLost() { | 522 void ServiceManagerConnectionImpl::OnConnectionLost() { |
| 531 if (!connection_lost_handler_.is_null()) | 523 if (!connection_lost_handler_.is_null()) |
| 532 connection_lost_handler_.Run(); | 524 connection_lost_handler_.Run(); |
| 533 } | 525 } |
| 534 | 526 |
| 535 void ServiceManagerConnectionImpl::OnConnect( | 527 void ServiceManagerConnectionImpl::OnConnect( |
| 536 const service_manager::ServiceInfo& local_info, | 528 const service_manager::ServiceInfo& local_info, |
| 537 const service_manager::ServiceInfo& remote_info) { | 529 const service_manager::ServiceInfo& remote_info) { |
| 538 local_info_ = local_info; | 530 local_info_ = local_info; |
| 539 for (auto& handler : on_connect_handlers_) | 531 for (auto& handler : on_connect_handlers_) |
| 540 handler.second.Run(local_info, remote_info); | 532 handler.second.Run(local_info, remote_info); |
| 541 } | 533 } |
| 542 | 534 |
| 543 void ServiceManagerConnectionImpl::GetInterface( | 535 void ServiceManagerConnectionImpl::GetInterface( |
| 544 service_manager::mojom::InterfaceProvider* provider, | 536 service_manager::mojom::InterfaceProvider* provider, |
| 545 const std::string& interface_name, | 537 const std::string& interface_name, |
| 546 mojo::ScopedMessagePipeHandle request_handle) { | 538 mojo::ScopedMessagePipeHandle request_handle) { |
| 547 provider->GetInterface(interface_name, std::move(request_handle)); | 539 provider->GetInterface(interface_name, std::move(request_handle)); |
| 548 } | 540 } |
| 549 | 541 |
| 550 } // namespace content | 542 } // namespace content |
| 551 | 543 |
| OLD | NEW |