aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/com/android/volley/toolbox/PoolingByteArrayOutputStream.java
diff options
context:
space:
mode:
authorAnonymous <no-reply@google.com>2021-07-07 14:01:06 -0700
committerJeff Davidson <jpd@google.com>2021-07-07 23:09:19 +0000
commit212e7004acfdce76c900fd97070e2e5e8476be20 (patch)
treecf5d56ccdb862fd9676c855f919408ef940bc019 /src/main/java/com/android/volley/toolbox/PoolingByteArrayOutputStream.java
parentb47af415ba74754b442c1f9f3960b29537d07e6e (diff)
downloadvolley-212e7004acfdce76c900fd97070e2e5e8476be20.tar.gz
Android.bp has been updated to account for the new source directory structure. - 0dc50bcfd021c204a9e6c9e7e6befbdfa1027247 Refactor Volley into a multi-module project. (#418) by Jeff Davidson <jpd@google.com> - 763c86b0bc9f66a8bb499f6a8b7fd3bdc87621a8 Remove new constructors from JsonRequests which are break... by Jeff Davidson <jpd@google.com> - 8d1b1a59e7cd1b1d3c6d8686f8831cea08f80d1f Add @NonNull annotations to Volley (#413) by Kamal Faraj <kfaraj.dev@gmail.com> - 5ba41f8670413973f587e435598f9f1724fa26e9 Allow sending any JSON with JsonArrayRequest & JsonObject... by Paul Smith <paulsmithkc@gmail.com> - 784cdd755392a6080e5eb0bf94bd7bf4ea31cf17 Update SNAPSHOT version after 1.2.0 release by Jeff Davidson <jpd@google.com> - 0d6497bab417a5f78b3c8e03ea157ada0fbfbc5d Add developers stanza to Volley POM. (#400) by Jeff Davidson <jpd@google.com> - 36274bf515a699ae5a7fe3d321206d1b803226d8 API cleanup for Async Volley stack ahead of 1.2.0 release... by Jeff Davidson <jpd@google.com> - 03f0144843fcf9ebafe512647c1c588975429452 Update environment variable name for snapshot pushes. (#3... by Jeff Davidson <jpd@google.com> - 3bd1975652687d2baa1b11a7f02b135edede8523 Publish SNAPSHOT builds to OSSRH instead of OJO. (#397) by Jeff Davidson <jpd@google.com> - 0e0c3d9cfa694f8f1400a9e9abc4bc11761fdb52 Invoke RetryPolicy#retry in the blocking executor. (#393) by Jeff Davidson <jpd@google.com> - b51831a48f06ad28f627c3624e5edb41598a2bf8 Use a consistent timebase when evaluating soft/hard TTLs.... by Jeff Davidson <jpd@google.com> - cd0839113b100f163df1ebd04ce6d5b9e36e9863 Migrate from Travis CI to GitHub Actions. (#381) by Jeff Davidson <jpd@google.com> - bdc0e393199ebf9e67c4e29e665252818eed4639 Clean up cache initialization in AsyncRequestQueue. (#380) by Jeff Davidson <jpd@google.com> - 1c0ade36edde15d02844b40351ab6f80c63b71b3 Actually allow applications to provide custom executors. by Jeff Davidson <jpd@google.com> GitOrigin-RevId: 0dc50bcfd021c204a9e6c9e7e6befbdfa1027247 Change-Id: I4b8e4098ad5c349cb83efc867273fac1d3582a34
Diffstat (limited to 'src/main/java/com/android/volley/toolbox/PoolingByteArrayOutputStream.java')
-rw-r--r--src/main/java/com/android/volley/toolbox/PoolingByteArrayOutputStream.java92
1 files changed, 0 insertions, 92 deletions
diff --git a/src/main/java/com/android/volley/toolbox/PoolingByteArrayOutputStream.java b/src/main/java/com/android/volley/toolbox/PoolingByteArrayOutputStream.java
deleted file mode 100644
index bdcc45e..0000000
--- a/src/main/java/com/android/volley/toolbox/PoolingByteArrayOutputStream.java
+++ /dev/null
@@ -1,92 +0,0 @@
-/*
- * Copyright (C) 2012 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.volley.toolbox;
-
-import java.io.ByteArrayOutputStream;
-import java.io.IOException;
-
-/**
- * A variation of {@link java.io.ByteArrayOutputStream} that uses a pool of byte[] buffers instead
- * of always allocating them fresh, saving on heap churn.
- */
-public class PoolingByteArrayOutputStream extends ByteArrayOutputStream {
- /**
- * If the {@link #PoolingByteArrayOutputStream(ByteArrayPool)} constructor is called, this is
- * the default size to which the underlying byte array is initialized.
- */
- private static final int DEFAULT_SIZE = 256;
-
- private final ByteArrayPool mPool;
-
- /**
- * Constructs a new PoolingByteArrayOutputStream with a default size. If more bytes are written
- * to this instance, the underlying byte array will expand.
- */
- public PoolingByteArrayOutputStream(ByteArrayPool pool) {
- this(pool, DEFAULT_SIZE);
- }
-
- /**
- * Constructs a new {@code ByteArrayOutputStream} with a default size of {@code size} bytes. If
- * more than {@code size} bytes are written to this instance, the underlying byte array will
- * expand.
- *
- * @param size initial size for the underlying byte array. The value will be pinned to a default
- * minimum size.
- */
- public PoolingByteArrayOutputStream(ByteArrayPool pool, int size) {
- mPool = pool;
- buf = mPool.getBuf(Math.max(size, DEFAULT_SIZE));
- }
-
- @Override
- public void close() throws IOException {
- mPool.returnBuf(buf);
- buf = null;
- super.close();
- }
-
- @Override
- public void finalize() {
- mPool.returnBuf(buf);
- }
-
- /** Ensures there is enough space in the buffer for the given number of additional bytes. */
- @SuppressWarnings("UnsafeFinalization")
- private void expand(int i) {
- /* Can the buffer handle @i more bytes, if not expand it */
- if (count + i <= buf.length) {
- return;
- }
- byte[] newbuf = mPool.getBuf((count + i) * 2);
- System.arraycopy(buf, 0, newbuf, 0, count);
- mPool.returnBuf(buf);
- buf = newbuf;
- }
-
- @Override
- public synchronized void write(byte[] buffer, int offset, int len) {
- expand(len);
- super.write(buffer, offset, len);
- }
-
- @Override
- public synchronized void write(int oneByte) {
- expand(1);
- super.write(oneByte);
- }
-}