org.apache.mina.common

Interface IoHandler

Known Implementing Classes:
ChainedIoHandler, DemuxingIoHandler, IoHandlerAdapter, SingleSessionIoHandlerDelegate, StreamIoHandler

public interface IoHandler

Handles all I/O events fired by MINA.
See Also:
IoHandlerAdapter

Method Summary

void
exceptionCaught(IoSession session, Throwable cause)
Invoked when any exception is thrown by user IoHandler implementation or by MINA.
void
messageReceived(IoSession session, Object message)
Invoked when a message is received.
void
messageSent(IoSession session, Object message)
Invoked when a message written by IoSession.write(Object) is sent out.
void
sessionClosed(IoSession session)
Invoked when a connection is closed.
void
sessionCreated(IoSession session)
Invoked from an I/O processor thread when a new connection has been created.
void
sessionIdle(IoSession session, IdleStatus status)
Invoked with the related IdleStatus when a connection becomes idle.
void
sessionOpened(IoSession session)
Invoked when a connection has been opened.

Method Details

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 instanceof IOException, MINA will close the connection automatically.

messageReceived

public void messageReceived(IoSession session,
                            Object message)
            throws Exception
Invoked when a message is received.

messageSent

public void messageSent(IoSession session,
                        Object message)
            throws Exception
Invoked when a message written by IoSession.write(Object) is sent out.

sessionClosed

public void sessionClosed(IoSession session)
            throws Exception
Invoked when a connection is closed.

sessionCreated

public void sessionCreated(IoSession session)
            throws Exception
Invoked from an I/O processor thread when a new connection has been created. Because this method is supposed to be called from the same thread that handles I/O of multiple sessions, please implement this method to perform tasks that consumes minimal amount of time such as socket parameter and user-defined session attribute initialization.

sessionIdle

public void sessionIdle(IoSession session,
                        IdleStatus status)
            throws Exception
Invoked with the related IdleStatus when a connection becomes idle. This method is not invoked if the transport type is UDP; it's a known bug, and will be fixed in 2.0.

sessionOpened

public void sessionOpened(IoSession session)
            throws Exception
Invoked when a connection has been opened. This method is invoked after sessionCreated(IoSession). The biggest difference from sessionCreated(IoSession) is that it's invoked from other thread than an I/O processor thread once thread modesl is configured properly.