Class AbstractMessageParser<T extends HttpMessage>
java.lang.Object
org.apache.hc.core5.http.impl.nio.AbstractMessageParser<T>
- All Implemented Interfaces:
NHttpMessageParser<T>
- Direct Known Subclasses:
DefaultHttpRequestParser,DefaultHttpResponseParser
public abstract class AbstractMessageParser<T extends HttpMessage>
extends Object
implements NHttpMessageParser<T>
Abstract
NHttpMessageParser that serves as a base for all message
parser implementations.- Since:
- 4.0
-
Nested Class Summary
Nested Classes -
Field Summary
FieldsModifier and TypeFieldDescriptionprivate intprivate final List<CharArrayBuffer> private CharArrayBufferprivate final LineParserprivate Tprivate final Http1Configprivate AbstractMessageParser.State -
Constructor Summary
ConstructorsConstructorDescriptionAbstractMessageParser(LineParser lineParser, Http1Config messageConstraints) Creates an instance of AbstractMessageParser. -
Method Summary
Modifier and TypeMethodDescriptionprotected abstract TcreateMessage(CharArrayBuffer buffer) CreatesHttpMessageinstance based on the content of the input buffer containing the first line of the incoming HTTP message.(package private) LineParserparse(SessionInputBuffer sessionBuffer, boolean endOfStream) Attempts to parse a complete message head from the content of the internal buffer.private voidprivate Tvoidreset()Resets the parser.
-
Field Details
-
state
-
message
-
lineBuf
-
headerBufs
-
emptyLineCount
private int emptyLineCount -
lineParser
-
messageConstraints
-
-
Constructor Details
-
AbstractMessageParser
Creates an instance of AbstractMessageParser.- Parameters:
lineParser- the line parser. IfnullLazyLineParser.INSTANCEwill be used.messageConstraints- Message constraints. IfnullHttp1Config.DEFAULTwill be used.- Since:
- 4.3
-
-
Method Details
-
getLineParser
LineParser getLineParser() -
reset
public void reset()Description copied from interface:NHttpMessageParserResets the parser. The parser will be ready to start parsing another HTTP message.- Specified by:
resetin interfaceNHttpMessageParser<T extends HttpMessage>
-
createMessage
CreatesHttpMessageinstance based on the content of the input buffer containing the first line of the incoming HTTP message.- Parameters:
buffer- the line buffer.- Returns:
- HTTP message.
- Throws:
HttpException- in case of HTTP protocol violation
-
parseHeadLine
- Throws:
IOExceptionHttpException
-
parseHeader
- Throws:
IOException
-
parse
public T parse(SessionInputBuffer sessionBuffer, boolean endOfStream) throws IOException, HttpException Description copied from interface:NHttpMessageParserAttempts to parse a complete message head from the content of the internal buffer. If the message in the input buffer is incomplete this method will returnnull.- Specified by:
parsein interfaceNHttpMessageParser<T extends HttpMessage>- Parameters:
sessionBuffer- session input buffer.endOfStream- end of stream flag- Returns:
- HTTP message head, if available,
nullotherwise. - Throws:
IOException- in case of an I/O error.HttpException- in case the HTTP message is malformed or violates the HTTP protocol.
-