Index: components/cronet/android/api/src/org/chromium/net/ChunkedWritableByteChannel.java |
diff --git a/components/cronet/android/api/src/org/chromium/net/ChunkedWritableByteChannel.java b/components/cronet/android/api/src/org/chromium/net/ChunkedWritableByteChannel.java |
deleted file mode 100644 |
index f25b103ec5152782c6fec241ab02dc57c8ba6b90..0000000000000000000000000000000000000000 |
--- a/components/cronet/android/api/src/org/chromium/net/ChunkedWritableByteChannel.java |
+++ /dev/null |
@@ -1,126 +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.net; |
- |
-import java.io.IOException; |
-import java.nio.ByteBuffer; |
-import java.nio.channels.ClosedChannelException; |
-import java.nio.channels.WritableByteChannel; |
-import java.util.ArrayList; |
- |
-/** |
- * A writable byte channel that is optimized for chunked writing. Each call to |
- * {@link #write} results in a ByteBuffer being created and remembered. Then all |
- * of those byte buffers are combined on demand. This approach allows to avoid |
- * the cost of reallocating a byte buffer. |
- * @deprecated This is no longer used in the new async API. |
- * {@hide as it's deprecated} |
- */ |
-@Deprecated |
-public class ChunkedWritableByteChannel implements WritableByteChannel { |
- |
- private final ArrayList<ByteBuffer> mBuffers = new ArrayList<ByteBuffer>(); |
- |
- private ByteBuffer mInitialBuffer; |
- |
- private ByteBuffer mBuffer; |
- |
- private int mSize; |
- |
- private boolean mClosed; |
- |
- public void setCapacity(int capacity) { |
- if (!mBuffers.isEmpty() || mInitialBuffer != null) { |
- throw new IllegalStateException(); |
- } |
- |
- mInitialBuffer = ByteBuffer.allocateDirect(capacity); |
- } |
- |
- @Override |
- public int write(ByteBuffer buffer) throws IOException { |
- if (mClosed) { |
- throw new ClosedChannelException(); |
- } |
- |
- int size = buffer.remaining(); |
- mSize += size; |
- |
- if (mInitialBuffer != null) { |
- if (size <= mInitialBuffer.remaining()) { |
- mInitialBuffer.put(buffer); |
- return size; |
- } |
- |
- // The supplied initial size was incorrect. Keep the accumulated |
- // data and switch to the usual "sequence of buffers" mode. |
- mInitialBuffer.flip(); |
- mBuffers.add(mInitialBuffer); |
- mInitialBuffer = null; |
- } |
- |
- // We can't hold a reference to this buffer, because it may wrap native |
- // memory and is not guaranteed to be immutable. |
- ByteBuffer tmpBuf = ByteBuffer.allocateDirect(size); |
- tmpBuf.put(buffer).rewind(); |
- mBuffers.add(tmpBuf); |
- return size; |
- } |
- |
- /** |
- * Returns the entire content accumulated by the channel as a ByteBuffer. |
- */ |
- public ByteBuffer getByteBuffer() { |
- if (mInitialBuffer != null) { |
- mInitialBuffer.flip(); |
- mBuffer = mInitialBuffer; |
- mInitialBuffer = null; |
- } else if (mBuffer != null && mSize == mBuffer.capacity()) { |
- // Cache hit |
- } else if (mBuffer == null && mBuffers.size() == 1) { |
- mBuffer = mBuffers.get(0); |
- } else { |
- mBuffer = ByteBuffer.allocateDirect(mSize); |
- int count = mBuffers.size(); |
- for (int i = 0; i < count; i++) { |
- mBuffer.put(mBuffers.get(i)); |
- } |
- mBuffer.rewind(); |
- } |
- return mBuffer; |
- } |
- |
- /** |
- * Returns the entire content accumulated by the channel as a byte array. |
- */ |
- public byte[] getBytes() { |
- byte[] bytes = new byte[mSize]; |
- if (mInitialBuffer != null) { |
- mInitialBuffer.flip(); |
- mInitialBuffer.get(bytes); |
- } else { |
- int bufferCount = mBuffers.size(); |
- int offset = 0; |
- for (int i = 0; i < bufferCount; i++) { |
- ByteBuffer buffer = mBuffers.get(i); |
- int bufferSize = buffer.remaining(); |
- buffer.get(bytes, offset, bufferSize); |
- buffer.rewind(); |
- offset += bufferSize; |
- } |
- } |
- return bytes; |
- } |
- |
- @Override |
- public void close() { |
- mClosed = true; |
- } |
- |
- @Override |
- public boolean isOpen() { |
- return !mClosed; |
- } |
-} |