Class DecodingStateMachine

    • Constructor Detail

      • DecodingStateMachine

        public DecodingStateMachine()
    • Method Detail

      • init

        protected abstract DecodingState init()
                                       throws java.lang.Exception
        Invoked to initialize this state machine.
        Returns:
        the start DecodingState.
        Throws:
        java.lang.Exception - if the initialization failed
      • finishDecode

        protected abstract DecodingState finishDecode​(java.util.List<java.lang.Object> childProducts,
                                                      ProtocolDecoderOutput out)
                                               throws java.lang.Exception
        Called once the state machine has reached its end.
        Parameters:
        childProducts - contains the messages generated by each of the DecodingStates which were exposed to the received data during the life time of this state machine.
        out - the real ProtocolDecoderOutput used by the ProtocolCodecFilter.
        Returns:
        the next state if the state machine should resume.
        Throws:
        java.lang.Exception - if the decoding end failed
      • destroy

        protected abstract void destroy()
                                 throws java.lang.Exception
        Invoked to destroy this state machine once the end state has been reached or the session has been closed.
        Throws:
        java.lang.Exception - if the destruction failed
      • decode

        public DecodingState decode​(IoBuffer in,
                                    ProtocolDecoderOutput out)
                             throws java.lang.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:
        java.lang.Exception - if the read data violated protocol specification.
      • finishDecode

        public DecodingState finishDecode​(ProtocolDecoderOutput out)
                                   throws java.lang.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:
        java.lang.Exception - if the read data violated protocol specification.