Package org.eclipse.net4j.buffer
Class BufferInputStream
- java.lang.Object
-
- java.io.InputStream
-
- org.eclipse.net4j.buffer.BufferInputStream
-
- All Implemented Interfaces:
java.io.Closeable,java.lang.AutoCloseable,IBufferHandler
- Direct Known Subclasses:
ChannelInputStream
public class BufferInputStream extends java.io.InputStream implements IBufferHandler
Abuffer handlerthat defragments the passedbuffersinto a continuous byte sequence which is exposed as aninput stream.- Author:
- Eike Stepper
-
-
Field Summary
Fields Modifier and Type Field Description static longDEFAULT_MILLIS_BEFORE_TIMEOUTstatic longDEFAULT_MILLIS_INTERRUPT_CHECKstatic longNO_TIMEOUT
-
Constructor Summary
Constructors Constructor Description BufferInputStream()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidclose()protected voidcloseChannel()Subclasses may override.protected booleanensureBuffer()java.lang.RuntimeExceptiongetException()longgetMillisBeforeTimeout()longgetMillisInterruptCheck()voidhandleBuffer(IBuffer buffer)Handles anIBufferand possibly releases it.booleanisCCAM()intread()intread(byte[] b, int off, int len)voidrestartTimeout()voidsetException(RemoteException exception)java.lang.StringtoString()
-
-
-
Field Detail
-
NO_TIMEOUT
public static final long NO_TIMEOUT
- See Also:
- Constant Field Values
-
DEFAULT_MILLIS_BEFORE_TIMEOUT
public static final long DEFAULT_MILLIS_BEFORE_TIMEOUT
- See Also:
- Constant Field Values
-
DEFAULT_MILLIS_INTERRUPT_CHECK
public static final long DEFAULT_MILLIS_INTERRUPT_CHECK
- See Also:
- Constant Field Values
-
-
Method Detail
-
isCCAM
public boolean isCCAM()
- Since:
- 4.4
-
getMillisBeforeTimeout
public long getMillisBeforeTimeout()
-
getMillisInterruptCheck
public long getMillisInterruptCheck()
-
restartTimeout
public void restartTimeout()
- Since:
- 2.0
-
getException
public java.lang.RuntimeException getException()
- Since:
- 2.0
-
setException
public void setException(RemoteException exception)
- Since:
- 4.0
-
handleBuffer
public void handleBuffer(IBuffer buffer)
Description copied from interface:IBufferHandlerHandles anIBufferand possibly releases it.The implementor of this method takes over the ownership of the buffer. Care must be taken to properly
releasethe buffer if the ownership is not explicitly passed on to some further party.- Specified by:
handleBufferin interfaceIBufferHandler- Parameters:
buffer- The buffer to be handled.
-
read
public int read() throws java.io.IOException- Specified by:
readin classjava.io.InputStream- Throws:
java.io.IOException
-
read
public int read(byte[] b, int off, int len) throws java.io.IOException- Overrides:
readin classjava.io.InputStream- Throws:
java.io.IOException
-
close
public void close() throws java.io.IOException- Specified by:
closein interfacejava.lang.AutoCloseable- Specified by:
closein interfacejava.io.Closeable- Overrides:
closein classjava.io.InputStream- Throws:
java.io.IOException
-
toString
public java.lang.String toString()
- Overrides:
toStringin classjava.lang.Object
-
ensureBuffer
protected boolean ensureBuffer() throws java.io.IOException- Throws:
java.io.IOException
-
closeChannel
protected void closeChannel()
Subclasses may override.- Since:
- 4.5
-
-