org.glassfish.grizzly.http.server.io
Class NIOReader

java.lang.Object
  extended by java.io.Reader
      extended by org.glassfish.grizzly.http.server.io.NIOReader
All Implemented Interfaces:
java.io.Closeable, java.lang.Readable, NIOInputSource

public class NIOReader
extends java.io.Reader
implements NIOInputSource

Character stream implementation used to read character-based request content.

Since:
2.0

Field Summary
 
Fields inherited from class java.io.Reader
lock
 
Constructor Summary
NIOReader(InputBuffer inputBuffer)
          Constructs a new NIOReader using the specified inputBuffer
 
Method Summary
 void close()
          
 boolean isFinished()
          
 boolean isReady()
          
 void mark(int readAheadLimit)
          
 boolean markSupported()
          This Reader implementation does not support marking.
 boolean notifyAvailable(ReadHandler handler)
           Notify the specified ReadHandler when any number of bytes can be read without blocking.
 boolean notifyAvailable(ReadHandler handler, int size)
           Notify the specified ReadHandler when the number of characters that can be read without blocking is greater or equal to the specified size.
 int read()
          
 int read(char[] cbuf)
          
 int read(char[] cbuf, int off, int len)
          
 int read(java.nio.CharBuffer target)
          
 boolean ready()
          
 int readyData()
          
 void reset()
          
 long skip(long n)
          
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

NIOReader

public NIOReader(InputBuffer inputBuffer)
Constructs a new NIOReader using the specified inputBuffer

Parameters:
inputBuffer - the InputBuffer from which character content will be supplied
Method Detail

read

public int read(java.nio.CharBuffer target)
         throws java.io.IOException

Specified by:
read in interface java.lang.Readable
Overrides:
read in class java.io.Reader
Throws:
java.io.IOException

read

public int read()
         throws java.io.IOException

Overrides:
read in class java.io.Reader
Throws:
java.io.IOException

read

public int read(char[] cbuf)
         throws java.io.IOException

Overrides:
read in class java.io.Reader
Throws:
java.io.IOException

skip

public long skip(long n)
          throws java.io.IOException

Overrides:
skip in class java.io.Reader
Throws:
java.io.IOException

ready

public boolean ready()
              throws java.io.IOException

Overrides:
ready in class java.io.Reader
Throws:
java.io.IOException

markSupported

public boolean markSupported()
This Reader implementation does not support marking.

Overrides:
markSupported in class java.io.Reader
Returns:
false

mark

public void mark(int readAheadLimit)
          throws java.io.IOException

Overrides:
mark in class java.io.Reader
Throws:
java.io.IOException

reset

public void reset()
           throws java.io.IOException

Overrides:
reset in class java.io.Reader
Throws:
java.io.IOException

read

public int read(char[] cbuf,
                int off,
                int len)
         throws java.io.IOException

Specified by:
read in class java.io.Reader
Throws:
java.io.IOException

close

public void close()
           throws java.io.IOException

Specified by:
close in interface java.io.Closeable
Specified by:
close in class java.io.Reader
Throws:
java.io.IOException

notifyAvailable

public boolean notifyAvailable(ReadHandler handler)

Notify the specified ReadHandler when any number of bytes can be read without blocking.

Invoking this method is equivalent to calling: notifyAvailable(handler, 0).

Specified by:
notifyAvailable in interface NIOInputSource
Parameters:
handler - the ReadHandler to notify.
Returns:
true if the specified handler has been accepted and will be notified as data becomes available to write, otherwise returns false which means data is available to be read without blocking.
See Also:
ReadHandler.onDataAvailable(), ReadHandler.onAllDataRead()

notifyAvailable

public boolean notifyAvailable(ReadHandler handler,
                               int size)

Notify the specified ReadHandler when the number of characters that can be read without blocking is greater or equal to the specified size.

Note that unless this method is called with a different ReadHandler implementation, the same ReadHandler will be invoked each time data becomes available to read.

Specified by:
notifyAvailable in interface NIOInputSource
Parameters:
handler - the ReadHandler to notify.
size - the least number of characters that must be available before the ReadHandler is invoked. If size is 0, the handler will be notified as soon as data is available no matter the size.
Returns:
true if the specified handler has been accepted and will be notified as data becomes available to write, otherwise returns false which means data is available to be read without blocking.
See Also:
ReadHandler.onDataAvailable(), ReadHandler.onAllDataRead()

isFinished

public boolean isFinished()

Specified by:
isFinished in interface NIOInputSource
Returns:
true when all data for this particular request has been read, otherwise returns false.

readyData

public int readyData()

Specified by:
readyData in interface NIOInputSource
Returns:
the number of bytes (or characters) that may be obtained without blocking. Note when dealing with characters, this method will return an estimate on the number of characters available.

isReady

public boolean isReady()

Specified by:
isReady in interface NIOInputSource
Returns:
true if data can be obtained without blocking, otherwise returns false.


Copyright © 2011 Oracle Corpration. All Rights Reserved.