Index: mojo/public/cpp/bindings/interface_request.h |
diff --git a/mojo/public/cpp/bindings/interface_request.h b/mojo/public/cpp/bindings/interface_request.h |
deleted file mode 100644 |
index a16f5da5669ceb89da2a7e88df75b4197cd25eb2..0000000000000000000000000000000000000000 |
--- a/mojo/public/cpp/bindings/interface_request.h |
+++ /dev/null |
@@ -1,140 +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_REQUEST_H_ |
-#define MOJO_PUBLIC_CPP_BINDINGS_INTERFACE_REQUEST_H_ |
- |
-#include <cstddef> |
-#include <utility> |
- |
-#include "mojo/public/cpp/system/message_pipe.h" |
- |
-namespace mojo { |
- |
-template <typename I> |
-class InterfacePtr; |
- |
-template <typename I> |
-class InterfaceHandle; |
- |
-// Represents a request from a remote client for an implementation of Interface |
-// over a specified message pipe. The implementor of the interface should |
-// remove the message pipe by calling PassMessagePipe() and bind it to the |
-// implementation. If this is not done, the InterfaceRequest will automatically |
-// close the pipe on destruction. Can also represent the absence of a request |
-// if the client did not provide a message pipe. |
-template <typename Interface> |
-class InterfaceRequest { |
- public: |
- // Constructs an "empty" InterfaceRequest, representing that the client is not |
- // requesting an implementation of Interface. |
- InterfaceRequest() {} |
- InterfaceRequest(std::nullptr_t) {} |
- |
- // Constructs an InterfaceRequest from a message pipe handle (if |handle| is |
- // not set, then this constructs an "empty" InterfaceRequest). |
- explicit InterfaceRequest(ScopedMessagePipeHandle handle) |
- : handle_(handle.Pass()) {} |
- |
- // Takes the message pipe from another InterfaceRequest. |
- InterfaceRequest(InterfaceRequest&& other) { handle_ = other.handle_.Pass(); } |
- InterfaceRequest& operator=(InterfaceRequest&& other) { |
- handle_ = other.handle_.Pass(); |
- return *this; |
- } |
- |
- // Assigning to nullptr resets the InterfaceRequest to an empty state, |
- // closing the message pipe currently bound to it (if any). |
- InterfaceRequest& operator=(std::nullptr_t) { |
- handle_.reset(); |
- return *this; |
- } |
- |
- // Binds the request to a message pipe over which Interface is to be |
- // requested. If the request is already bound to a message pipe, the current |
- // message pipe will be closed. |
- void Bind(ScopedMessagePipeHandle handle) { handle_ = handle.Pass(); } |
- |
- // Indicates whether the request currently contains a valid message pipe. |
- bool is_pending() const { return handle_.is_valid(); } |
- |
- // Removes the message pipe from the request and returns it. |
- ScopedMessagePipeHandle PassMessagePipe() { return handle_.Pass(); } |
- |
- private: |
- ScopedMessagePipeHandle handle_; |
- |
- MOJO_MOVE_ONLY_TYPE(InterfaceRequest); |
-}; |
- |
-// Creates a new message pipe over which Interface is to be served, and one end |
-// into the supplied |handle| and the returns the other inside an |
-// InterfaceRequest<>. The InterfaceHandle<> can be used to create a client |
-// proxy (such as an InterfacePtr<> or SynchronousInterfacePtr<>). |
-// InterfaceRequest<> should be passed to whatever will provide the |
-// implementation. |
-// TODO(vardhan): Rename this function? This isn't making a "proxy" you can use, |
-// as you still need to convert it into something like InterfacePtr<>. |
-template <typename Interface> |
-InterfaceRequest<Interface> GetProxy(InterfaceHandle<Interface>* handle) { |
- MessagePipe pipe; |
- *handle = InterfaceHandle<Interface>(pipe.handle0.Pass(), 0u); |
- return InterfaceRequest<Interface>(pipe.handle1.Pass()); |
-} |
- |
-// Creates a new message pipe over which Interface is to be served. Binds the |
-// specified InterfacePtr to one end of the message pipe, and returns an |
-// InterfaceRequest bound to the other. The InterfacePtr should be passed to |
-// the client, and the InterfaceRequest should be passed to whatever will |
-// provide the implementation. The implementation should typically be bound to |
-// the InterfaceRequest using the Binding or StrongBinding classes. The client |
-// may begin to issue calls even before an implementation has been bound, since |
-// messages sent over the pipe will just queue up until they are consumed by |
-// the implementation. |
-// |
-// Example #1: Requesting a remote implementation of an interface. |
-// =============================================================== |
-// |
-// Given the following interface: |
-// |
-// interface Database { |
-// OpenTable(Table& table); |
-// } |
-// |
-// The client would have code similar to the following: |
-// |
-// DatabasePtr database = ...; // Connect to database. |
-// TablePtr table; |
-// database->OpenTable(GetProxy(&table)); |
-// |
-// Upon return from GetProxy, |table| is ready to have methods called on it. |
-// |
-// Example #2: Registering a local implementation with a remote service. |
-// ===================================================================== |
-// |
-// Given the following interface |
-// interface Collector { |
-// RegisterSource(Source source); |
-// } |
-// |
-// The client would have code similar to the following: |
-// |
-// CollectorPtr collector = ...; // Connect to Collector. |
-// SourcePtr source; |
-// InterfaceRequest<Source> source_request = GetProxy(&source); |
-// collector->RegisterSource(source.Pass()); |
-// CreateSource(source_request.Pass()); // Create implementation locally. |
-// |
-// TODO(vardhan): Move this function into interface_ptr.h |
-template <typename Interface> |
-InterfaceRequest<Interface> GetProxy(InterfacePtr<Interface>* ptr) { |
- InterfaceHandle<Interface> iface_handle; |
- auto retval = GetProxy(&iface_handle); |
- *ptr = InterfacePtr<Interface>::Create(std::move(iface_handle)); |
- return retval; |
-} |
- |
-} // namespace mojo |
- |
-#endif // MOJO_PUBLIC_CPP_BINDINGS_INTERFACE_REQUEST_H_ |