Class DemuxingProtocolEncoder

    • Field Detail

      • type2encoderFactory

        private final java.util.Map<java.lang.Class<?>,​MessageEncoderFactory> type2encoderFactory
      • EMPTY_PARAMS

        private static final java.lang.Class<?>[] EMPTY_PARAMS
    • Constructor Detail

      • DemuxingProtocolEncoder

        public DemuxingProtocolEncoder()
    • Method Detail

      • addMessageEncoder

        public void addMessageEncoder​(java.lang.Class<?> messageType,
                                      java.lang.Class<? extends MessageEncoder> encoderClass)
        Add a new message encoder class for a given message type
        Parameters:
        messageType - The message type
        encoderClass - The encoder class
      • addMessageEncoder

        public <T> void addMessageEncoder​(java.lang.Class<T> messageType,
                                          MessageEncoder<? super T> encoder)
        Add a new message encoder instance for a given message type
        Type Parameters:
        T - The message type
        Parameters:
        messageType - The message type
        encoder - The encoder instance
      • addMessageEncoder

        public <T> void addMessageEncoder​(java.lang.Class<T> messageType,
                                          MessageEncoderFactory<? super T> factory)
        Add a new message encoder factory for a given message type
        Type Parameters:
        T - The message type
        Parameters:
        messageType - The message type
        factory - The encoder factory
      • addMessageEncoder

        public void addMessageEncoder​(java.lang.Iterable<java.lang.Class<?>> messageTypes,
                                      java.lang.Class<? extends MessageEncoder> encoderClass)
        Add a new message encoder class for a list of message types
        Parameters:
        messageTypes - The message types
        encoderClass - The encoder class
      • addMessageEncoder

        public <T> void addMessageEncoder​(java.lang.Iterable<java.lang.Class<? extends T>> messageTypes,
                                          MessageEncoder<? super T> encoder)
        Add a new message instance class for a list of message types
        Type Parameters:
        T - The message type
        Parameters:
        messageTypes - The message types
        encoder - The encoder instance
      • addMessageEncoder

        public <T> void addMessageEncoder​(java.lang.Iterable<java.lang.Class<? extends T>> messageTypes,
                                          MessageEncoderFactory<? super T> factory)
        Add a new message encoder factory for a list of message types
        Type Parameters:
        T - The message type
        Parameters:
        messageTypes - The message types
        factory - The encoder factory
      • dispose

        public void dispose​(IoSession session)
                     throws java.lang.Exception
        Releases all resources related with this encoder.
        Specified by:
        dispose in interface ProtocolEncoder
        Parameters:
        session - The current Session
        Throws:
        java.lang.Exception - if failed to dispose all resources