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

Unified Diff: components/devtools_bridge/test/android/javatests/src/org/chromium/components/devtools_bridge/DataPipe.java

Issue 517233002: DevTools socket tunnel. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@glue
Patch Set: Created 6 years, 3 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: components/devtools_bridge/test/android/javatests/src/org/chromium/components/devtools_bridge/DataPipe.java
diff --git a/components/devtools_bridge/test/android/javatests/src/org/chromium/components/devtools_bridge/DataPipe.java b/components/devtools_bridge/test/android/javatests/src/org/chromium/components/devtools_bridge/DataPipe.java
new file mode 100644
index 0000000000000000000000000000000000000000..c36319a897c3d8c2d6392642188de97893118c4b
--- /dev/null
+++ b/components/devtools_bridge/test/android/javatests/src/org/chromium/components/devtools_bridge/DataPipe.java
@@ -0,0 +1,79 @@
+// 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 java.nio.ByteBuffer;
+
+/**
+ * Represents a pair of connected AbstractDataChannel's. Sends to one channel
+ * come to another and vice versa.
+ */
+public class DataPipe {
+ private final SignalingThreadMock mSignalingThread = new SignalingThreadMock();
+
+ private final PairedDataChannel mDC0 = new PairedDataChannel();
+ private final PairedDataChannel mDC1 = new PairedDataChannel();
+
+ public void connect() {
+ mDC0.setPair(mDC1);
+ mDC1.setPair(mDC0);
+ mDC0.open();
+ mDC1.open();
+ }
+
+ public void disconnect() {
+ mDC0.setPair(null);
+ mDC1.setPair(null);
+ mDC0.close();
+ mDC1.close();
+ }
+
+ public AbstractDataChannel dataChannel(int index) {
+ switch (index) {
+ case 0:
+ return mDC0;
+ case 1:
+ return mDC1;
+ default:
+ throw new IllegalArgumentException("index");
+ }
+ }
+
+ public void dispose() {
+ mDC0.dispose();
+ mDC1.dispose();
+ mSignalingThread.dispose();
+ }
+
+ private class PairedDataChannel extends DataChannelMock {
+ private PairedDataChannel mPair;
+
+ public PairedDataChannel() {
+ super(mSignalingThread);
+ }
+
+ public void setPair(final PairedDataChannel pair) {
+ mSignalingThread.invoke(new Runnable() {
+ @Override
+ public void run() {
+ mPair = pair;
+ }
+ });
+ }
+
+ @Override
+ protected void sendOnSignalingThread(ByteBuffer message) {
+ assert message.remaining() > 0;
+
+ if (mPair == null) return;
+ mPair.notifyMessageOnSignalingThread(message);
+ }
+
+ @Override
+ protected void disposeSignalingThread() {
+ // Ignore. Will dispose in DataPipe.dispose.
+ }
+ }
+}

Powered by Google App Engine
This is Rietveld 408576698