001 package fi.iki.hsivonen.io; 002 003 import java.io.IOException; 004 import java.io.InputStream; 005 006 /** 007 * @version $Id: AutobufferingBoundedInputStream.java,v 1.1 2005/05/07 11:09:35 hsivonen Exp $ 008 * @author hsivonen 009 */ 010 public final class AutobufferingBoundedInputStream extends InputStream { 011 012 private byte[] buf; 013 014 private volatile int end = 0; 015 016 private int pos = 0; 017 018 private int mark = 0; 019 020 private volatile boolean full = false; 021 022 private volatile boolean closed = false; 023 024 private Object monitor = new Object(); 025 026 /** 027 * 028 */ 029 public AutobufferingBoundedInputStream() { 030 super(); 031 // TODO Auto-generated constructor stub 032 } 033 034 /** 035 * @see java.io.InputStream#read() 036 */ 037 public int read() throws IOException { 038 // TODO Auto-generated method stub 039 return 0; 040 } 041 042 /** 043 * @see java.io.InputStream#available() 044 */ 045 public int available() throws IOException { 046 // TODO Auto-generated method stub 047 return super.available(); 048 } 049 /** 050 * @see java.io.InputStream#close() 051 */ 052 public void close() throws IOException { 053 // TODO Auto-generated method stub 054 super.close(); 055 } 056 /** 057 * @see java.io.InputStream#mark(int) 058 */ 059 public void mark(int arg0) { 060 mark = pos; 061 } 062 /** 063 * @see java.io.InputStream#markSupported() 064 */ 065 public boolean markSupported() { 066 return true; 067 } 068 /** 069 * @see java.io.InputStream#read(byte[], int, int) 070 */ 071 public int read(byte[] arg0, int arg1, int arg2) throws IOException { 072 // TODO Auto-generated method stub 073 return super.read(arg0, arg1, arg2); 074 } 075 /** 076 * @see java.io.InputStream#reset() 077 */ 078 public void reset() throws IOException { 079 pos = mark; 080 } 081 /** 082 * @see java.io.InputStream#skip(long) 083 */ 084 public long skip(long arg0) throws IOException { 085 // TODO Auto-generated method stub 086 return super.skip(arg0); 087 } 088 }