Class DemuxingIoHandler

    • Constructor Detail

      • DemuxingIoHandler

        public DemuxingIoHandler()
        Creates a new instance with no registered MessageHandlers.
    • Method Detail

      • addReceivedMessageHandler

        public <E> MessageHandler<? super E> addReceivedMessageHandler​(Class<E> type,
                                                                       MessageHandler<? super E> handler)
        Registers a MessageHandler that handles the received messages of the specified type.
        Type Parameters:
        E - The message handler's type
        Parameters:
        type - The message's type
        handler - The message handler
        Returns:
        the old handler if there is already a registered handler for the specified type. null otherwise.
      • removeReceivedMessageHandler

        public <E> MessageHandler<? super E> removeReceivedMessageHandler​(Class<E> type)
        Deregisters a MessageHandler that handles the received messages of the specified type.
        Type Parameters:
        E - The message handler's type
        Parameters:
        type - The message's type
        Returns:
        the removed handler if successfully removed. null otherwise.
      • addSentMessageHandler

        public <E> MessageHandler<? super E> addSentMessageHandler​(Class<E> type,
                                                                   MessageHandler<? super E> handler)
        Registers a MessageHandler that handles the sent messages of the specified type.
        Type Parameters:
        E - The message handler's type
        Parameters:
        type - The message's type
        handler - The message handler
        Returns:
        the old handler if there is already a registered handler for the specified type. null otherwise.
      • removeSentMessageHandler

        public <E> MessageHandler<? super E> removeSentMessageHandler​(Class<E> type)
        Deregisters a MessageHandler that handles the sent messages of the specified type.
        Type Parameters:
        E - The message handler's type
        Parameters:
        type - The message's type
        Returns:
        the removed handler if successfully removed. null otherwise.
      • addExceptionHandler

        public <E extends ThrowableExceptionHandler<? super E> addExceptionHandler​(Class<E> type,
                                                                                     ExceptionHandler<? super E> handler)
        Registers a MessageHandler that receives the messages of the specified type.
        Type Parameters:
        E - The message handler's type
        Parameters:
        type - The message's type
        handler - The Exception handler
        Returns:
        the old handler if there is already a registered handler for the specified type. null otherwise.
      • removeExceptionHandler

        public <E extends ThrowableExceptionHandler<? super E> removeExceptionHandler​(Class<E> type)
        Deregisters a MessageHandler that receives the messages of the specified type.
        Type Parameters:
        E - The Exception Handler's type
        Parameters:
        type - The message's type
        Returns:
        the removed handler if successfully removed. null otherwise.
      • getMessageHandler

        public <E> MessageHandler<? super E> getMessageHandler​(Class<E> type)
        Type Parameters:
        E - The message handler's type
        Parameters:
        type - The message's type
        Returns:
        the MessageHandler which is registered to process the specified type.
      • getReceivedMessageHandlerMap

        public Map<Class<?>,​MessageHandler<?>> getReceivedMessageHandlerMap()
        Returns:
        the Map which contains all messageType-MessageHandler pairs registered to this handler for received messages.
      • getSentMessageHandlerMap

        public Map<Class<?>,​MessageHandler<?>> getSentMessageHandlerMap()
        Returns:
        the Map which contains all messageType-MessageHandler pairs registered to this handler for sent messages.
      • messageSent

        public void messageSent​(IoSession session,
                                Object message)
                         throws Exception
        Invoked when a message written by IoSession.write(Object) is sent out. Warning ! If you are to overload this method, be aware that you _must_ call the messageHandler in your own method, otherwise it won't be called. Invoked when a message written by IoSession.write(Object) is sent out.
        Specified by:
        messageSent in interface IoHandler
        Overrides:
        messageSent in class IoHandlerAdapter
        Parameters:
        session - The session that has sent a full message
        message - The sent message
        Throws:
        Exception - If we get an exception while processing the sent message
      • exceptionCaught

        public void exceptionCaught​(IoSession session,
                                    Throwable cause)
                             throws Exception
        Invoked when any exception is thrown by user IoHandler implementation or by MINA. If cause is an instance of IOException, MINA will close the connection automatically. Warning ! If you are to overload this method, be aware that you _must_ call the messageHandler in your own method, otherwise it won't be called. Invoked when any exception is thrown by user IoHandler implementation or by MINA. If cause is an instance of IOException, MINA will close the connection automatically.
        Specified by:
        exceptionCaught in interface IoHandler
        Overrides:
        exceptionCaught in class IoHandlerAdapter
        Parameters:
        session - The session for which we have got an exception
        cause - The exception that has been caught
        Throws:
        Exception - If we get an exception while processing the caught exception