net.sf.asyncobjects.io.util
Class BoundedInput<D extends BatchedData<D>,I extends AInput<D>>

java.lang.Object
  extended by net.sf.asyncobjects.AsyncUnicastServer<FacetType>
      extended by net.sf.asyncobjects.util.CloseableWrapper<I,I>
          extended by net.sf.asyncobjects.io.util.BoundedInput<D,I>
Type Parameters:
D - a batched data type
I - an input type
All Implemented Interfaces:
ACloseable, AsyncObject, ExplicitSharing, AInput<D>
Direct Known Subclasses:
BoundedByteInput, BoundedTextInput

public class BoundedInput<D extends BatchedData<D>,I extends AInput<D>>
extends CloseableWrapper<I,I>
implements AInput<D>

Input that allows to read at most the specified length. After that, EOF is returned.

Author:
const

Nested Class Summary
 
Nested classes/interfaces inherited from class net.sf.asyncobjects.util.CloseableWrapper
CloseableWrapper.InvalidatingWhen<I,R>
 
Field Summary
 
Fields inherited from class net.sf.asyncobjects.util.CloseableWrapper
closeWrapper, requests, wrapped
 
Constructor Summary
BoundedInput(I in, boolean closeStream, long remaining)
          A constructor
 
Method Summary
 Promise<Boolean> isPushbackSupported()
           
 Promise<Void> pushback(D data)
          Pushback data
 Promise<D> read(int limit)
          Read data
 
Methods inherited from class net.sf.asyncobjects.util.CloseableWrapper
afterInvalidate, beforeClose, close, closed, ensureOpen, ensureValid, invalidate, isValid
 
Methods inherited from class net.sf.asyncobjects.AsyncUnicastServer
dereference, export, isImmediate, myVat, promise
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface net.sf.asyncobjects.ACloseable
close
 
Methods inherited from interface net.sf.asyncobjects.AsyncObject
dereference, isImmediate
 

Constructor Detail

BoundedInput

public BoundedInput(I in,
                    boolean closeStream,
                    long remaining)
A constructor

Parameters:
in - input stream to limit
closeStream - if true underlying stream is closed on close stream operation
remaining - remaining elements allowed to be read in the stream.
Method Detail

read

public Promise<D> read(int limit)
Read data

Specified by:
read in interface AInput<D extends BatchedData<D>>
Parameters:
limit - a limit for data to read
Returns:
a promise for read data
See Also:
AInput.read(int)

isPushbackSupported

public Promise<Boolean> isPushbackSupported()
Specified by:
isPushbackSupported in interface AInput<D extends BatchedData<D>>
Returns:
true if pushback supported for this stream
See Also:
AInput.isPushbackSupported()

pushback

public Promise<Void> pushback(D data)
Pushback data

Specified by:
pushback in interface AInput<D extends BatchedData<D>>
Parameters:
data - a data to push back
Returns:
when pushback finished
See Also:
AInput.pushback(net.sf.asyncobjects.io.BatchedData)


Copyright 2002-2007 Constantine Plotnikov. All Rights Reserved.