Class DecodingStateMachine

    • Constructor Detail

      • DecodingStateMachine

        public DecodingStateMachine()
    • Method Detail

      • destroy

        protected abstract void destroy()
                                 throws Exception
        Invoked to destroy this state machine once the end state has been reached or the session has been closed.
        Throws:
        Exception - if the destruction failed
      • 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.