Class DemuxingProtocolDecoder

    • Constructor Detail

      • DemuxingProtocolDecoder

        public DemuxingProtocolDecoder()
    • Method Detail

      • addMessageDecoder

        public void addMessageDecoder​(Class<? extends MessageDecoder> decoderClass)
        Adds a new message decoder class
        Parameters:
        decoderClass - The decoder class
      • addMessageDecoder

        public void addMessageDecoder​(MessageDecoder decoder)
        Adds a new message decoder instance
        Parameters:
        decoder - The decoder instance
      • addMessageDecoder

        public void addMessageDecoder​(MessageDecoderFactory factory)
        Adds a new message decoder factory
        Parameters:
        factory - The decoder factory
      • doDecode

        protected boolean doDecode​(IoSession session,
                                   IoBuffer in,
                                   ProtocolDecoderOutput out)
                            throws Exception
        Implement this method to consume the specified cumulative buffer and decode its content into message(s).
        Specified by:
        doDecode in class CumulativeProtocolDecoder
        Parameters:
        session - The current Session
        in - the cumulative buffer
        out - The ProtocolDecoderOutput that will receive the decoded message
        Returns:
        true if and only if there's more to decode in the buffer and you want to have doDecode method invoked again. Return false if remaining data is not enough to decode, then this method will be invoked again when more data is cumulated.
        Throws:
        Exception - if cannot decode in.
      • dispose

        public void dispose​(IoSession session)
                     throws Exception
        Releases the cumulative buffer used by the specified session. Please don't forget to call super.dispose( session ) when you override this method.
        Specified by:
        dispose in interface ProtocolDecoder
        Overrides:
        dispose in class CumulativeProtocolDecoder
        Parameters:
        session - The current Session
        Throws:
        Exception - if failed to dispose all resources