org.eclipse.net4j.buffer
Class BufferInputStream

java.lang.Object
  extended by java.io.InputStream
      extended by org.eclipse.net4j.buffer.BufferInputStream
All Implemented Interfaces:
Closeable, IBufferHandler
Direct Known Subclasses:
ChannelInputStream

public class BufferInputStream
extends InputStream
implements IBufferHandler

A buffer handler that defragments the passed buffers into a continuous byte sequence which is exposed as an input stream.


Field Summary
static long DEFAULT_MILLIS_BEFORE_TIMEOUT
           
static long DEFAULT_MILLIS_INTERRUPT_CHECK
           
static long NO_TIMEOUT
           
 
Constructor Summary
BufferInputStream()
           
 
Method Summary
 void close()
           
protected  boolean ensureBuffer()
           
 RuntimeException getException()
           
 long getMillisBeforeTimeout()
           
 long getMillisInterruptCheck()
           
 void handleBuffer(IBuffer buffer)
          Handles an IBuffer and optionally releases it.
 int read()
           
 void restartTimeout()
           
 void setException(RemoteException exception)
           
 String toString()
           
 
Methods inherited from class java.io.InputStream
available, mark, markSupported, read, read, reset, skip
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

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
Constructor Detail

BufferInputStream

public BufferInputStream()
Method Detail

getMillisBeforeTimeout

public long getMillisBeforeTimeout()

getMillisInterruptCheck

public long getMillisInterruptCheck()

restartTimeout

public void restartTimeout()
Since:
2.0

getException

public 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 an IBuffer and optionally 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 explicitely passed to some further party.

Specified by:
handleBuffer in interface IBufferHandler
Parameters:
buffer - The buffer to be handled and otionally released.

read

public int read()
         throws IOException
Specified by:
read in class InputStream
Throws:
IOException

close

public void close()
           throws IOException
Specified by:
close in interface Closeable
Overrides:
close in class InputStream
Throws:
IOException

toString

public String toString()
Overrides:
toString in class Object

ensureBuffer

protected boolean ensureBuffer()
                        throws IOException
Throws:
IOException


Copyright (c) 2011, 2012 Eike Stepper (Berlin, Germany) and others.