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

Unified Diff: services/service_manager/public/cpp/lib/service_context.cc

Issue 2860023002: Eliminate lib directory for service manager client lib. (Closed)
Patch Set: Created 3 years, 8 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 side-by-side diff with in-line comments
Download patch
Index: services/service_manager/public/cpp/lib/service_context.cc
diff --git a/services/service_manager/public/cpp/lib/service_context.cc b/services/service_manager/public/cpp/lib/service_context.cc
deleted file mode 100644
index 74683c5739650ec377a85f8827b99876fcd95617..0000000000000000000000000000000000000000
--- a/services/service_manager/public/cpp/lib/service_context.cc
+++ /dev/null
@@ -1,106 +0,0 @@
-// Copyright 2014 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#include "services/service_manager/public/cpp/service_context.h"
-
-#include <utility>
-
-#include "base/bind.h"
-#include "base/logging.h"
-#include "mojo/public/cpp/bindings/interface_request.h"
-#include "services/service_manager/public/cpp/connector.h"
-#include "services/service_manager/public/cpp/service.h"
-
-namespace service_manager {
-
-////////////////////////////////////////////////////////////////////////////////
-// ServiceContext, public:
-
-ServiceContext::ServiceContext(
- std::unique_ptr<service_manager::Service> service,
- mojom::ServiceRequest request,
- std::unique_ptr<Connector> connector,
- mojom::ConnectorRequest connector_request)
- : pending_connector_request_(std::move(connector_request)),
- service_(std::move(service)),
- binding_(this, std::move(request)),
- connector_(std::move(connector)),
- weak_factory_(this) {
- DCHECK(binding_.is_bound());
- binding_.set_connection_error_handler(
- base::Bind(&ServiceContext::OnConnectionError, base::Unretained(this)));
- if (!connector_) {
- connector_ = Connector::Create(&pending_connector_request_);
- } else {
- DCHECK(pending_connector_request_.is_pending());
- }
- service_->SetContext(this);
-}
-
-ServiceContext::~ServiceContext() {}
-
-void ServiceContext::SetQuitClosure(const base::Closure& closure) {
- if (service_quit_) {
- // CAUTION: May delete |this|.
- closure.Run();
- } else {
- quit_closure_ = closure;
- }
-}
-
-void ServiceContext::RequestQuit() {
- DCHECK(service_control_.is_bound());
- service_control_->RequestQuit();
-}
-
-void ServiceContext::DisconnectFromServiceManager() {
- if (binding_.is_bound())
- binding_.Close();
- connector_.reset();
-}
-
-void ServiceContext::QuitNow() {
- service_quit_ = true;
- if (binding_.is_bound())
- binding_.Close();
- if (!quit_closure_.is_null()) {
- // CAUTION: May delete |this|.
- base::ResetAndReturn(&quit_closure_).Run();
- }
-}
-
-////////////////////////////////////////////////////////////////////////////////
-// ServiceContext, mojom::Service implementation:
-
-void ServiceContext::OnStart(const Identity& identity,
- const OnStartCallback& callback) {
- identity_ = identity;
- callback.Run(std::move(pending_connector_request_),
- mojo::MakeRequest(&service_control_));
- service_->OnStart();
-}
-
-void ServiceContext::OnBindInterface(
- const BindSourceInfo& source_info,
- const std::string& interface_name,
- mojo::ScopedMessagePipeHandle interface_pipe,
- const OnBindInterfaceCallback& callback) {
- // Acknowledge the request regardless of whether it's accepted.
- callback.Run();
-
- service_->OnBindInterface(source_info, interface_name,
- std::move(interface_pipe));
-}
-
-////////////////////////////////////////////////////////////////////////////////
-// ServiceContext, private:
-
-void ServiceContext::OnConnectionError() {
- if (service_->OnServiceManagerConnectionLost()) {
- // CAUTION: May delete |this|.
- QuitNow();
- }
-}
-
-} // namespace service_manager
« 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