| Index: mojo/public/cpp/bindings/interface_impl.h | 
| diff --git a/mojo/public/cpp/bindings/interface_impl.h b/mojo/public/cpp/bindings/interface_impl.h | 
| deleted file mode 100644 | 
| index 5663cc3e302934acdc5c241e70efacbaba23cd34..0000000000000000000000000000000000000000 | 
| --- a/mojo/public/cpp/bindings/interface_impl.h | 
| +++ /dev/null | 
| @@ -1,184 +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_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; | 
| -  using Client = typename Interface::Client; | 
| - | 
| -  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(); | 
| -  } | 
| - | 
| -  Client* client() { return binding_.client(); } | 
| -  internal::Router* internal_router() { return binding_.internal_router(); } | 
| - | 
| -  // Implements ErrorHandler. | 
| -  // | 
| -  // Called when the client is no longer connected to this instance. NOTE: The | 
| -  // client() method continues to return a non-null pointer after this method | 
| -  // is called. After this method is called, any method calls made on client() | 
| -  // 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(pipe.handle0.Pass(), 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. | 
| -// | 
| -// Before returning, the instance will receive a SetClient call, providing it | 
| -// with a proxy to the client on the other end of the pipe. | 
| -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_ | 
|  |