Package fr.dyade.aaa.agent
Class BufferedMessageInputStream
- java.lang.Object
-
- java.io.InputStream
-
- fr.dyade.aaa.agent.MessageInputStream
-
- fr.dyade.aaa.agent.BufferedMessageInputStream
-
- All Implemented Interfaces:
Closeable,AutoCloseable
- Direct Known Subclasses:
HttpNetwork.NetworkInputStream,PoolNetwork.NetSession.NetworkInputStream,SimpleNetwork.NetworkInputStream,UDPNetwork.NetworkInputStream
public abstract class BufferedMessageInputStream extends MessageInputStream
Class used to receive messages through a stream using buffering.Be careful this InputStream is not synchronized.
-
-
Field Summary
Fields Modifier and Type Field Description protected InputStreaminThe underlying input stream to be read.-
Fields inherited from class fr.dyade.aaa.agent.MessageInputStream
buf, compressedFlows, count, pos
-
-
Constructor Summary
Constructors Constructor Description BufferedMessageInputStream()Creates aBufferedMessageInputStreamthat uses a buffer with default size.BufferedMessageInputStream(int size)Creates aBufferedMessageInputStreamthat uses a buffer with specified size.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected voidclean()Resets the stream for a new use.private voidfill()Fills the empty buffer with more data.intread()Reads the next byte of data from the input stream.intread(byte[] b, int off, int len)Reads up tolenbytes of data from the input stream into an array of bytes.private intread1(byte[] b, int off, int len)protected voidreadFully(int length)Reads length bytes of data from the input stream.-
Methods inherited from class fr.dyade.aaa.agent.MessageInputStream
read, readHeader, readInt, readMessage, readMessageHeader, readShort
-
Methods inherited from class java.io.InputStream
available, close, mark, markSupported, nullInputStream, readAllBytes, readNBytes, readNBytes, reset, skip, transferTo
-
-
-
-
Field Detail
-
in
protected InputStream in
The underlying input stream to be read.
-
-
Constructor Detail
-
BufferedMessageInputStream
public BufferedMessageInputStream()
Creates aBufferedMessageInputStreamthat uses a buffer with default size.
-
BufferedMessageInputStream
public BufferedMessageInputStream(int size)
Creates aBufferedMessageInputStreamthat uses a buffer with specified size.- Parameters:
size- the buffer size.- Throws:
IllegalArgumentException- if size is less than 0.
-
-
Method Detail
-
clean
protected final void clean()
Resets the stream for a new use. Removes all data.
-
fill
private final void fill() throws IOExceptionFills the empty buffer with more data.- Throws:
IOException- an error occurs.
-
read
public final int read() throws IOExceptionReads the next byte of data from the input stream. The value byte is returned as anintin the range0to255. If no byte is available because the end of the stream has been reached, the value-1is returned. This method blocks until input data is available, the end of the stream is detected, or an exception is thrown.- Specified by:
readin classMessageInputStream- Returns:
- the next byte of data, or
-1if the end of the stream is reached. - Throws:
IOException- if an I/O error occurs.
-
read
public final int read(byte[] b, int off, int len) throws IOExceptionReads up tolenbytes of data from the input stream into an array of bytes. An attempt is made to read as many aslenbytes, but a smaller number may be read. The number of bytes actually read is returned as an integer.This method blocks until input data is available, end of file is detected, or an exception is thrown.
- Specified by:
readin classMessageInputStream- Parameters:
b- the buffer into which the data is read.off- the start offset in arraybat which the data is written.len- the maximum number of bytes to read.- Returns:
- the total number of bytes read into the buffer, or
-1if there is no more data because the end of the stream has been reached. - Throws:
IOException- If the first byte cannot be read for any reason other than end of file, or if the input stream has been closed, or if some other I/O error occurs.NullPointerException- Ifbisnull.IndexOutOfBoundsException- Ifoffis negative,lenis negative, orlenis greater thanb.length - off
-
read1
private final int read1(byte[] b, int off, int len) throws IOException- Throws:
IOException
-
readFully
protected final void readFully(int length) throws IOExceptionReads length bytes of data from the input stream. This method returns when length bytes are available or if end of stream is reached.- Specified by:
readFullyin classMessageInputStream- Parameters:
length- number of byte to read.- Throws:
IOException- an error occurs.
-
-