package com.nifty.cloud.ncs.http;

import java.io.FilterInputStream;
import java.io.IOException;
import java.io.InputStream;

/**
 * HTTP要求／レスポンスのために、InputStreamをラップするクラスです。
 */
public class HttpInputStream extends FilterInputStream
{
	private long count;

	public HttpInputStream(InputStream in)
	{
		super(in);
	}

    /**
     * この入力ストリームが読み込まれたbyte数を返却します。
     *
     * @return 読み込まれたbyte数
     */
	public long getCount()
	{
		return (count);
	}

	@Override
	public int read() throws IOException
	{
		int size = super.read();
		if (size >= 0) {
			count += size;
		}

		return (size);
	}

	@Override
	public int read(byte[] b, int off, int len) throws IOException
	{
		int size = super.read(b, off, len);
		if (size >= 0) {
			count += size;
		}

		return (size);
	}

	@Override
	public long skip(long n) throws IOException
	{
		long size = super.skip(n);
		if (size >= 0) {
			count += size;
		}

		return (size);
	}
}
