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

Unified Diff: mojo/public/java/bindings/src/org/chromium/mojo/bindings/InterfaceWithClient.java

Issue 814543006: Move //mojo/{public, edk} underneath //third_party (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Rebase Created 5 years, 11 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: mojo/public/java/bindings/src/org/chromium/mojo/bindings/InterfaceWithClient.java
diff --git a/mojo/public/java/bindings/src/org/chromium/mojo/bindings/InterfaceWithClient.java b/mojo/public/java/bindings/src/org/chromium/mojo/bindings/InterfaceWithClient.java
deleted file mode 100644
index f7d8afec8a24a8db70d64adade82a9b79a1001d5..0000000000000000000000000000000000000000
--- a/mojo/public/java/bindings/src/org/chromium/mojo/bindings/InterfaceWithClient.java
+++ /dev/null
@@ -1,115 +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.
-
-package org.chromium.mojo.bindings;
-
-import org.chromium.mojo.system.Core;
-import org.chromium.mojo.system.MessagePipeHandle;
-import org.chromium.mojo.system.Pair;
-
-/**
- * Base class for mojo generated interfaces that have a client.
- *
- * @param <CI> the type of the client interface.
- */
-public interface InterfaceWithClient<CI extends Interface> extends Interface {
-
- /**
- * Proxy class for interfaces with a client.
- */
- interface Proxy<CI extends Interface> extends Interface.Proxy, InterfaceWithClient<CI> {
- }
-
- /**
- * Base implementation of Proxy.
- *
- * @param <CI> the type of the client interface.
- */
- abstract class AbstractProxy<CI extends Interface> extends Interface.AbstractProxy
- implements Proxy<CI> {
-
- /**
- * Constructor.
- *
- * @param core the Core implementation used to create pipes and access the async waiter.
- * @param messageReceiver the message receiver to send message to.
- */
- public AbstractProxy(Core core, MessageReceiverWithResponder messageReceiver) {
- super(core, messageReceiver);
- }
-
- /**
- * @see InterfaceWithClient#setClient(Interface)
- */
- @Override
- public void setClient(CI client) {
- throw new UnsupportedOperationException(
- "Setting the client on a proxy is not supported");
- }
- }
-
- /**
- * Base manager implementation for interfaces that have a client.
- *
- * @param <I> the type of the interface the manager can handle.
- * @param <P> the type of the proxy the manager can handle. To be noted, P always extends I.
- * @param <CI> the type of the client interface.
- */
- abstract class Manager<I extends InterfaceWithClient<CI>, P extends Proxy<CI>,
- CI extends Interface> extends Interface.Manager<I, P> {
-
- /**
- * @see Interface.Manager#bind(Interface, MessagePipeHandle)
- */
- @Override
- public final void bind(I impl, MessagePipeHandle handle) {
- Router router = new RouterImpl(handle);
- super.bind(handle.getCore(), impl, router);
- @SuppressWarnings("unchecked")
- CI client = (CI) getClientManager().attachProxy(handle.getCore(), router);
- impl.setClient(client);
- router.start();
- }
-
- /**
- * Returns a Proxy that will send messages to the given |handle|. This implies that the
- * other end of the handle must be connected to an implementation of the interface. |client|
- * is the implementation of the client interface.
- */
- public P attachProxy(MessagePipeHandle handle, CI client) {
- Router router = new RouterImpl(handle);
- DelegatingConnectionErrorHandler handlers = new DelegatingConnectionErrorHandler();
- handlers.addConnectionErrorHandler(client);
- router.setErrorHandler(handlers);
- getClientManager().bind(handle.getCore(), client, router);
- P proxy = super.attachProxy(handle.getCore(), router);
- handlers.addConnectionErrorHandler(proxy);
- router.start();
- return proxy;
- }
-
- /**
- * Constructs a new |InterfaceRequest| for the interface. This method returns a Pair where
- * the first element is a proxy, and the second element is the request. The proxy can be
- * used immediately.
- *
- * @param client the implementation of the client interface.
- */
- public final Pair<P, InterfaceRequest<I>> getInterfaceRequest(Core core, CI client) {
- Pair<MessagePipeHandle, MessagePipeHandle> handles = core.createMessagePipe(null);
- P proxy = attachProxy(handles.first, client);
- return Pair.create(proxy, new InterfaceRequest<I>(handles.second));
- }
-
- /**
- * Returns a manager for the client inetrafce.
- */
- protected abstract Interface.Manager<CI, ?> getClientManager();
- }
-
- /**
- * Set the client implementation for this interface.
- */
- public void setClient(CI client);
-}

Powered by Google App Engine
This is Rietveld 408576698