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
- Parameters:
byteBuffer
- the bytes read.
- 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.
- Returns:
Interceptor
recycle
public void recycle()
- Recycle this object.
- Specified by:
recycle
in interface StreamAlgorithm<SocketChannel>
- Overrides:
recycle
in class StreamAlgorithmBase
Copyright © 2012 Oracle Corporation. All Rights Reserved.