Class CrLfDecodingState
java.lang.Object
org.apache.mina.filter.codec.statemachine.CrLfDecodingState
- All Implemented Interfaces:
DecodingState
DecodingState which decodes a single CRLF.
If it is found, the bytes are consumed and true
is provided as the product. Otherwise, read bytes are pushed back
to the stream, and false is provided as the
product.
Note that if we find a CR but do not find a following LF, we raise
an error.-
Field Summary
Fields -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptiondecode(IoBuffer in, ProtocolDecoderOutput out) Invoked when data is available for this state.protected abstract DecodingStatefinishDecode(boolean foundCRLF, ProtocolDecoderOutput out) Invoked when this state has found aCRLF.Invoked when the associatedIoSessionis closed.
-
Field Details
-
CR
private static final byte CRCarriage return character- See Also:
-
LF
private static final byte LFLine feed character- See Also:
-
hasCR
private boolean hasCR
-
-
Constructor Details
-
CrLfDecodingState
public CrLfDecodingState()
-
-
Method Details
-
decode
Invoked when data is available for this state.- Specified by:
decodein interfaceDecodingState- Parameters:
in- the data to be decoded.out- used to write decoded objects.- Returns:
- the next state if a state transition was triggered (use
thisfor loop transitions) ornullif the state machine has reached its end. - Throws:
Exception- if the read data violated protocol specification.
-
finishDecode
Invoked when the associatedIoSessionis closed. This method is useful when you deal with protocols which don't specify the length of a message (e.g. HTTP responses withoutcontent-lengthheader). Implement this method to process the remaining data thatDecodingState.decode(IoBuffer, ProtocolDecoderOutput)method didn't process completely.- Specified by:
finishDecodein interfaceDecodingState- Parameters:
out- used to write decoded objects.- Returns:
- the next state if a state transition was triggered (use
thisfor loop transitions) ornullif the state machine has reached its end. - Throws:
Exception- if the read data violated protocol specification.
-
finishDecode
protected abstract DecodingState finishDecode(boolean foundCRLF, ProtocolDecoderOutput out) throws Exception Invoked when this state has found aCRLF.- Parameters:
foundCRLF-trueifCRLFwas found.out- the currentProtocolDecoderOutputused to write decoded messages.- Returns:
- the next state if a state transition was triggered (use
thisfor loop transitions) ornullif the state machine has reached its end. - Throws:
Exception- if the read data violated protocol specification.
-