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 handler
that defragments the passedbuffers
into a continuous byte sequence which is exposed as aninput stream
.- Author:
- Eike Stepper
-
-
Field Summary
Fields Modifier and Type Field Description static long
DEFAULT_MILLIS_BEFORE_TIMEOUT
static long
DEFAULT_MILLIS_INTERRUPT_CHECK
static long
NO_TIMEOUT
-
Constructor Summary
Constructors Constructor Description BufferInputStream()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
close()
protected void
closeChannel()
Subclasses may override.protected boolean
ensureBuffer()
java.lang.RuntimeException
getException()
long
getMillisBeforeTimeout()
long
getMillisInterruptCheck()
void
handleBuffer(IBuffer buffer)
Handles anIBuffer
and possibly releases it.boolean
isCCAM()
int
read()
int
read(byte[] b, int off, int len)
void
restartTimeout()
void
setException(RemoteException exception)
java.lang.String
toString()
-
-
-
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:IBufferHandler
Handles anIBuffer
and possibly releases it.The implementor of this method takes over the ownership of the buffer. Care must be taken to properly
release
the buffer if the ownership is not explicitly passed on to some further party.- Specified by:
handleBuffer
in interfaceIBufferHandler
- Parameters:
buffer
- The buffer to be handled.
-
read
public int read() throws java.io.IOException
- Specified by:
read
in classjava.io.InputStream
- Throws:
java.io.IOException
-
read
public int read(byte[] b, int off, int len) throws java.io.IOException
- Overrides:
read
in classjava.io.InputStream
- Throws:
java.io.IOException
-
close
public void close() throws java.io.IOException
- Specified by:
close
in interfacejava.lang.AutoCloseable
- Specified by:
close
in interfacejava.io.Closeable
- Overrides:
close
in classjava.io.InputStream
- Throws:
java.io.IOException
-
toString
public java.lang.String toString()
- Overrides:
toString
in 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
-
-