Class CrLfDecodingState

  • All Implemented Interfaces:
    DecodingState

    public abstract class CrLfDecodingState
    extends Object
    implements 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.
    Author:
    Apache MINA Project
    • Constructor Detail

      • CrLfDecodingState

        public CrLfDecodingState()
    • Method Detail

      • decode

        public DecodingState decode​(IoBuffer in,
                                    ProtocolDecoderOutput out)
                             throws Exception
        Invoked when data is available for this state.
        Specified by:
        decode in interface DecodingState
        Parameters:
        in - the data to be decoded.
        out - used to write decoded objects.
        Returns:
        the next state if a state transition was triggered (use this for loop transitions) or null if the state machine has reached its end.
        Throws:
        Exception - if the read data violated protocol specification.
      • finishDecode

        public DecodingState finishDecode​(ProtocolDecoderOutput out)
                                   throws Exception
        Invoked when the associated IoSession is closed. This method is useful when you deal with protocols which don't specify the length of a message (e.g. HTTP responses without content-length header). Implement this method to process the remaining data that DecodingState.decode(IoBuffer, ProtocolDecoderOutput) method didn't process completely.
        Specified by:
        finishDecode in interface DecodingState
        Parameters:
        out - used to write decoded objects.
        Returns:
        the next state if a state transition was triggered (use this for loop transitions) or null if 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 a CRLF.
        Parameters:
        foundCRLF - true if CRLF was found.
        out - the current ProtocolDecoderOutput used to write decoded messages.
        Returns:
        the next state if a state transition was triggered (use this for loop transitions) or null if the state machine has reached its end.
        Throws:
        Exception - if the read data violated protocol specification.