public void ready()

in core/src/main/java/org/apache/mina/transport/nio/NioTcpSession.java [336:381]


    public void ready(final boolean accept, boolean connect, final boolean read, final ByteBuffer readBuffer,
            final boolean write) {
        if (LOG.isDebugEnabled()) {
            LOG.debug("session {} ready for accept={}, connect={}, read={}, write={}", new Object[] { this, accept,
                                    connect, read, write });
        }
        if (connect) {
            try {

                boolean isConnected = ((SocketChannel) channel).finishConnect();

                if (!isConnected) {
                    LOG.error("unable to connect session {}", this);
                } else {
                    // cancel current registration for connection
                    selectionKey.cancel();
                    selectionKey = null;

                    // Register for reading
                    selectorLoop.register(false, false, true, false, this, channel, new RegistrationCallback() {

                        @Override
                        public void done(SelectionKey selectionKey) {
                            setConnected();
                        }
                    });
                }
            } catch (IOException e) {
                LOG.debug("Connection error, we cancel the future", e);
                if (connectFuture != null) {
                    connectFuture.error(e);
                }
            }
        }

        if (read) {
            processRead(readBuffer);
        }

        if (write) {
            processWrite(selectorLoop);
        }
        if (accept) {
            throw new IllegalStateException("accept event should never occur on NioTcpSession");
        }
    }