com.sun.grizzly.http.algorithms
Class StateMachineAlgorithm
java.lang.Object
com.sun.grizzly.http.algorithms.StreamAlgorithmBase
com.sun.grizzly.http.algorithms.StateMachineAlgorithm
- All Implemented Interfaces:
- StreamAlgorithm<SocketChannel>
public final class StateMachineAlgorithm
- extends StreamAlgorithmBase
Predict if the NIO channel has been fully read or not. This lagorithm will
first search for the content-length header, and use that value to determine if
the bytes has been fully read or not. If the content-length isn't included,
it will search for the end of the HTTP stream, which is a '\r\n'
- Author:
- Scott Oaks., Jean-Francois Arcand
| Fields inherited from class com.sun.grizzly.http.algorithms.StreamAlgorithmBase |
contentLength, curLimit, curPosition, handler, headerLength, lastStatePosition, primaryByteBuffer, socketChannel, state, useByteBufferView, useDirectByteBuffer |
| Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
StateMachineAlgorithm
public StateMachineAlgorithm()
parse
public boolean parse(ByteBuffer byteBuffer)
- Parse the
ByteBuffer and try to determine if the bytes
stream has been fully read from the SocketChannel.
Drain the SocketChannel and determine if the request bytes
has been fully read. For POST method, parse the bytes and seek for the
content-type header to determine the length of the request bytes.
- Specified by:
parse in interface StreamAlgorithm<SocketChannel>- Specified by:
parse in class StreamAlgorithmBase
- Returns:
- true if we need to call back the
SelectorThread
This occurs when the stream doesn't contains all the
request bytes.
false if the stream contains all request bytes.
getHandler
public Interceptor getHandler()
- Return the
Interceptor used by this algorithm.
recycle
public void recycle()
- Recycle this object.
- Specified by:
recycle in interface StreamAlgorithm<SocketChannel>- Overrides:
recycle in class StreamAlgorithmBase
Copyright © 2009 SUN Microsystems. All Rights Reserved.