/src/main/java/com/soundcloud/api/CountingMultipartEntity.java
https://bitbucket.org/derekverlee/soundcould-java-api-wrapper · Java · 81 lines · 64 code · 17 blank · 0 comment · 4 complexity · 9073e86b9ff4c38d93813054fb996c92 MD5 · raw file
- package com.soundcloud.api;
- import java.io.FilterOutputStream;
- import java.io.IOException;
- import java.io.InputStream;
- import java.io.OutputStream;
- import org.apache.http.Header;
- import org.apache.http.HttpEntity;
- class CountingMultipartEntity implements HttpEntity {
- private HttpEntity mDelegate;
- private Request.TransferProgressListener mListener;
- public CountingMultipartEntity(HttpEntity delegate,
- Request.TransferProgressListener listener) {
- super();
- mDelegate = delegate;
- mListener = listener;
- }
- public void consumeContent() throws IOException {
- mDelegate.consumeContent();
- }
- public InputStream getContent() throws IOException, IllegalStateException {
- return mDelegate.getContent();
- }
- public Header getContentEncoding() {
- return mDelegate.getContentEncoding();
- }
- public long getContentLength() {
- return mDelegate.getContentLength();
- }
- public Header getContentType() {
- return mDelegate.getContentType();
- }
- public boolean isChunked() {
- return mDelegate.isChunked();
- }
- public boolean isRepeatable() {
- return mDelegate.isRepeatable();
- }
- public boolean isStreaming() {
- return mDelegate.isStreaming();
- }
- public void writeTo(OutputStream outstream) throws IOException {
- mDelegate.writeTo(new CountingOutputStream(outstream, mListener));
- }
- private static class CountingOutputStream extends FilterOutputStream {
- private final Request.TransferProgressListener mListener;
- private long mTransferred = 0;
- public CountingOutputStream(final OutputStream out, final Request.TransferProgressListener listener) {
- super(out);
- mListener = listener;
- }
- @Override
- public void write(byte[] b, int off, int len) throws IOException {
- out.write(b, off, len);
- mTransferred += len;
- if (mListener != null) mListener.transferred(mTransferred);
- }
- @Override
- public void write(int b) throws IOException {
- out.write(b);
- mTransferred++;
- if (mListener != null) mListener.transferred(mTransferred);
- }
- }
- }