| Index: components/devtools_bridge/test/android/javatests/src/org/chromium/components/devtools_bridge/SignalingReceiverProxy.java
|
| diff --git a/components/devtools_bridge/test/android/javatests/src/org/chromium/components/devtools_bridge/SignalingReceiverProxy.java b/components/devtools_bridge/test/android/javatests/src/org/chromium/components/devtools_bridge/SignalingReceiverProxy.java
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..8abd132cf3dd16c4f7f3b3b4e470cecfa5ea0f7f
|
| --- /dev/null
|
| +++ b/components/devtools_bridge/test/android/javatests/src/org/chromium/components/devtools_bridge/SignalingReceiverProxy.java
|
| @@ -0,0 +1,56 @@
|
| +// 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.components.devtools_bridge;
|
| +
|
| +import org.chromium.components.devtools_bridge.commands.Command;
|
| +import org.chromium.components.devtools_bridge.commands.CommandReceiver;
|
| +import org.chromium.components.devtools_bridge.commands.CommandSender;
|
| +
|
| +/**
|
| + * Helper proxy that binds client and server sessions living on different executors.
|
| + */
|
| +final class SignalingReceiverProxy extends CommandSender {
|
| + private final CommandReceiver mReceiver;
|
| + private final SessionBase.Executor mServerExecutor;
|
| + private final SessionBase.Executor mClientExecutor;
|
| + private final int mDelayMs;
|
| +
|
| + public SignalingReceiverProxy(
|
| + SessionBase.Executor serverExecutor,
|
| + SessionBase.Executor clientExecutor,
|
| + SignalingReceiver server,
|
| + int delayMs) {
|
| + mServerExecutor = serverExecutor;
|
| + mClientExecutor = clientExecutor;
|
| + mReceiver = new CommandReceiver(server);
|
| + mDelayMs = delayMs;
|
| + }
|
| +
|
| + public SessionBase.Executor serverExecutor() {
|
| + return mServerExecutor;
|
| + }
|
| +
|
| + public SessionBase.Executor clientExecutor() {
|
| + return mClientExecutor;
|
| + }
|
| +
|
| + @Override
|
| + protected void send(final Command command, final Runnable completionCallback) {
|
| + assert mClientExecutor.isCalledOnSessionThread();
|
| +
|
| + mServerExecutor.postOnSessionThread(mDelayMs, new Runnable() {
|
| + @Override
|
| + public void run() {
|
| + mReceiver.receive(command, new Runnable() {
|
| + @Override
|
| + public void run() {
|
| + assert mServerExecutor.isCalledOnSessionThread();
|
| + mClientExecutor.postOnSessionThread(mDelayMs, completionCallback);
|
| + }
|
| + });
|
| + }
|
| + });
|
| + }
|
| +}
|
|
|