| Index: third_party/mojo/src/mojo/public/cpp/bindings/interface_impl.h
|
| diff --git a/third_party/mojo/src/mojo/public/cpp/bindings/interface_impl.h b/third_party/mojo/src/mojo/public/cpp/bindings/interface_impl.h
|
| deleted file mode 100644
|
| index c65f6e38870c490c284fe9c7aabbbf09ef451f70..0000000000000000000000000000000000000000
|
| --- a/third_party/mojo/src/mojo/public/cpp/bindings/interface_impl.h
|
| +++ /dev/null
|
| @@ -1,178 +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.
|
| -
|
| -#ifndef MOJO_PUBLIC_CPP_BINDINGS_INTERFACE_IMPL_H_
|
| -#define MOJO_PUBLIC_CPP_BINDINGS_INTERFACE_IMPL_H_
|
| -
|
| -#include "mojo/public/cpp/bindings/binding.h"
|
| -#include "mojo/public/cpp/bindings/interface_ptr_info.h"
|
| -#include "mojo/public/cpp/bindings/interface_request.h"
|
| -#include "mojo/public/cpp/environment/environment.h"
|
| -#include "mojo/public/cpp/system/macros.h"
|
| -
|
| -namespace mojo {
|
| -
|
| -// DEPRECATED! Please use mojo::Binding instead of InterfaceImpl<> in new code.
|
| -//
|
| -// InterfaceImpl<..> is designed to be the base class of an interface
|
| -// implementation. It may be bound to a pipe or a proxy, see BindToPipe and
|
| -// BindToProxy.
|
| -template <typename Interface>
|
| -class InterfaceImpl : public Interface, public ErrorHandler {
|
| - public:
|
| - using ImplementedInterface = Interface;
|
| -
|
| - InterfaceImpl() : binding_(this), error_handler_impl_(this) {
|
| - binding_.set_error_handler(&error_handler_impl_);
|
| - }
|
| - virtual ~InterfaceImpl() {}
|
| -
|
| - void BindToHandle(
|
| - ScopedMessagePipeHandle handle,
|
| - const MojoAsyncWaiter* waiter = Environment::GetDefaultAsyncWaiter()) {
|
| - binding_.Bind(handle.Pass(), waiter);
|
| - }
|
| -
|
| - bool WaitForIncomingMethodCall() {
|
| - return binding_.WaitForIncomingMethodCall();
|
| - }
|
| -
|
| - internal::Router* internal_router() { return binding_.internal_router(); }
|
| -
|
| - // Implements ErrorHandler.
|
| - //
|
| - // Called when the underlying pipe is closed. After this point no more
|
| - // calls will be made on Interface and all responses will be silently ignored.
|
| - void OnConnectionError() override {}
|
| -
|
| - void set_delete_on_error(bool delete_on_error) {
|
| - error_handler_impl_.set_delete_on_error(delete_on_error);
|
| - }
|
| -
|
| - private:
|
| - class ErrorHandlerImpl : public ErrorHandler {
|
| - public:
|
| - explicit ErrorHandlerImpl(InterfaceImpl* impl) : impl_(impl) {}
|
| - ~ErrorHandlerImpl() override {}
|
| -
|
| - // ErrorHandler implementation:
|
| - void OnConnectionError() override {
|
| - // If the the instance is not bound to the pipe, the instance might choose
|
| - // to delete the binding in the OnConnectionError handler, which would in
|
| - // turn delete |this|. Save the error behavior before invoking the error
|
| - // handler so we can correctly decide what to do.
|
| - bool delete_on_error = delete_on_error_;
|
| - impl_->OnConnectionError();
|
| - if (delete_on_error)
|
| - delete impl_;
|
| - }
|
| -
|
| - void set_delete_on_error(bool delete_on_error) {
|
| - delete_on_error_ = delete_on_error;
|
| - }
|
| -
|
| - private:
|
| - InterfaceImpl* impl_;
|
| - bool delete_on_error_ = false;
|
| -
|
| - MOJO_DISALLOW_COPY_AND_ASSIGN(ErrorHandlerImpl);
|
| - };
|
| -
|
| - Binding<Interface> binding_;
|
| - ErrorHandlerImpl error_handler_impl_;
|
| -
|
| - MOJO_DISALLOW_COPY_AND_ASSIGN(InterfaceImpl);
|
| -};
|
| -
|
| -// Takes an instance of an InterfaceImpl<..> subclass and binds it to the given
|
| -// MessagePipe. The instance is returned for convenience in member initializer
|
| -// lists, etc.
|
| -//
|
| -// If the pipe is closed, the instance's OnConnectionError method will be called
|
| -// and then the instance will be deleted.
|
| -//
|
| -// The instance is also bound to the current thread. Its methods will only be
|
| -// called on the current thread, and if the current thread exits, then the end
|
| -// point of the pipe will be closed and the error handler's OnConnectionError
|
| -// method will be called.
|
| -template <typename Impl>
|
| -Impl* BindToPipe(
|
| - Impl* instance,
|
| - ScopedMessagePipeHandle handle,
|
| - const MojoAsyncWaiter* waiter = Environment::GetDefaultAsyncWaiter()) {
|
| - instance->set_delete_on_error(true);
|
| - instance->BindToHandle(handle.Pass(), waiter);
|
| - return instance;
|
| -}
|
| -
|
| -// Like BindToPipe but does not delete the instance after a channel error.
|
| -template <typename Impl>
|
| -Impl* WeakBindToPipe(
|
| - Impl* instance,
|
| - ScopedMessagePipeHandle handle,
|
| - const MojoAsyncWaiter* waiter = Environment::GetDefaultAsyncWaiter()) {
|
| - instance->BindToHandle(handle.Pass(), waiter);
|
| - return instance;
|
| -}
|
| -
|
| -// Takes an instance of an InterfaceImpl<..> subclass and binds it to the given
|
| -// InterfacePtr<..>. The instance is returned for convenience in member
|
| -// initializer lists, etc. If the pipe is closed, the instance's
|
| -// OnConnectionError method will be called and then the instance will be
|
| -// deleted.
|
| -//
|
| -// The instance is also bound to the current thread. Its methods will only be
|
| -// called on the current thread, and if the current thread exits, then it will
|
| -// also be deleted, and along with it, its end point of the pipe will be closed.
|
| -template <typename Impl, typename Interface>
|
| -Impl* BindToProxy(
|
| - Impl* instance,
|
| - InterfacePtr<Interface>* ptr,
|
| - const MojoAsyncWaiter* waiter = Environment::GetDefaultAsyncWaiter()) {
|
| - instance->set_delete_on_error(true);
|
| - WeakBindToProxy(instance, ptr, waiter);
|
| - return instance;
|
| -}
|
| -
|
| -// Like BindToProxy but does not delete the instance after a channel error.
|
| -template <typename Impl, typename Interface>
|
| -Impl* WeakBindToProxy(
|
| - Impl* instance,
|
| - InterfacePtr<Interface>* ptr,
|
| - const MojoAsyncWaiter* waiter = Environment::GetDefaultAsyncWaiter()) {
|
| - MessagePipe pipe;
|
| - ptr->Bind(InterfacePtrInfo<Interface>(pipe.handle0.Pass(), 0u), waiter);
|
| - instance->BindToHandle(pipe.handle1.Pass(), waiter);
|
| - return instance;
|
| -}
|
| -
|
| -// Takes an instance of an InterfaceImpl<..> subclass and binds it to the given
|
| -// InterfaceRequest<..>. The instance is returned for convenience in member
|
| -// initializer lists, etc. If the pipe is closed, the instance's
|
| -// OnConnectionError method will be called and then the instance will be
|
| -// deleted.
|
| -//
|
| -// The instance is also bound to the current thread. Its methods will only be
|
| -// called on the current thread, and if the current thread exits, then it will
|
| -// also be deleted, and along with it, its end point of the pipe will be closed.
|
| -template <typename Impl, typename Interface>
|
| -Impl* BindToRequest(
|
| - Impl* instance,
|
| - InterfaceRequest<Interface>* request,
|
| - const MojoAsyncWaiter* waiter = Environment::GetDefaultAsyncWaiter()) {
|
| - return BindToPipe(instance, request->PassMessagePipe(), waiter);
|
| -}
|
| -
|
| -// Like BindToRequest but does not delete the instance after a channel error.
|
| -template <typename Impl, typename Interface>
|
| -Impl* WeakBindToRequest(
|
| - Impl* instance,
|
| - InterfaceRequest<Interface>* request,
|
| - const MojoAsyncWaiter* waiter = Environment::GetDefaultAsyncWaiter()) {
|
| - return WeakBindToPipe(instance, request->PassMessagePipe(), waiter);
|
| -}
|
| -
|
| -} // namespace mojo
|
| -
|
| -#endif // MOJO_PUBLIC_CPP_BINDINGS_INTERFACE_IMPL_H_
|
|
|