summaryrefslogtreecommitdiffstats
path: root/src/com/android/gallery3d/data/BytesBufferPool.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/com/android/gallery3d/data/BytesBufferPool.java')
-rw-r--r--src/com/android/gallery3d/data/BytesBufferPool.java91
1 files changed, 0 insertions, 91 deletions
diff --git a/src/com/android/gallery3d/data/BytesBufferPool.java b/src/com/android/gallery3d/data/BytesBufferPool.java
deleted file mode 100644
index d2da323fc..000000000
--- a/src/com/android/gallery3d/data/BytesBufferPool.java
+++ /dev/null
@@ -1,91 +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.gallery3d.data;
-
-import com.android.gallery3d.util.ThreadPool.JobContext;
-
-import java.io.FileDescriptor;
-import java.io.FileInputStream;
-import java.io.IOException;
-import java.util.ArrayList;
-
-public class BytesBufferPool {
-
- private static final int READ_STEP = 4096;
-
- public static class BytesBuffer {
- public byte[] data;
- public int offset;
- public int length;
-
- private BytesBuffer(int capacity) {
- this.data = new byte[capacity];
- }
-
- // an helper function to read content from FileDescriptor
- public void readFrom(JobContext jc, FileDescriptor fd) throws IOException {
- FileInputStream fis = new FileInputStream(fd);
- length = 0;
- try {
- int capacity = data.length;
- while (true) {
- int step = Math.min(READ_STEP, capacity - length);
- int rc = fis.read(data, length, step);
- if (rc < 0 || jc.isCancelled()) return;
- length += rc;
-
- if (length == capacity) {
- byte[] newData = new byte[data.length * 2];
- System.arraycopy(data, 0, newData, 0, data.length);
- data = newData;
- capacity = data.length;
- }
- }
- } finally {
- fis.close();
- }
- }
- }
-
- private final int mPoolSize;
- private final int mBufferSize;
- private final ArrayList<BytesBuffer> mList;
-
- public BytesBufferPool(int poolSize, int bufferSize) {
- mList = new ArrayList<BytesBuffer>(poolSize);
- mPoolSize = poolSize;
- mBufferSize = bufferSize;
- }
-
- public synchronized BytesBuffer get() {
- int n = mList.size();
- return n > 0 ? mList.remove(n - 1) : new BytesBuffer(mBufferSize);
- }
-
- public synchronized void recycle(BytesBuffer buffer) {
- if (buffer.data.length != mBufferSize) return;
- if (mList.size() < mPoolSize) {
- buffer.offset = 0;
- buffer.length = 0;
- mList.add(buffer);
- }
- }
-
- public synchronized void clear() {
- mList.clear();
- }
-}