@Override public Throwable cause() { return connectFuture.getException(); } }
@Override public boolean isDone() { return connectFuture.isDone(); }
@Override public boolean awaitUninterruptibly(long timeoutMillis) { return connectFuture.awaitUninterruptibly(timeoutMillis); }
@Override public void operationComplete(ConnectFuture future) { // fail bridge connect future if parent connect fails if (!future.isConnected()) { bridgeConnectFuture.setException(future.getException()); } } }
connector.setHandler(this); ConnectFuture future = connector.connect(forward); future.awaitUninterruptibly(); // wait for connect, or timeout if (future.isConnected()) { if (log.isDebugEnabled()) { log.debug("Connected: {}", forward); IoSession client = future.getSession(); client.setAttribute(ProxyFilter.FORWARD_KEY, session); session.setAttribute(ProxyFilter.FORWARD_KEY, client);
@Override public boolean isConnected() { return connectFuture.isConnected() && connectFuture.getSession().isConnected(); }
@Override public Channel getChannel() { return new MinaChannel(connectFuture.getSession()); }
future.addListener(listener);
@SuppressWarnings({ "unchecked", "rawtypes" }) public void operationComplete(CloseFuture future) { // now connection should be closed log.debug("Close operation completed {}: {}", sessionId, future.isClosed()); future.removeListener(this); for (Object key : session.getAttributeKeys()) { Object obj = session.getAttribute(key); log.debug("{}: {}", key, obj); if (obj != null) { if (log.isTraceEnabled()) { log.trace("Attribute: {}", obj.getClass().getName()); } if (obj instanceof IoProcessor) { log.debug("Flushing session in processor"); ((IoProcessor) obj).flush(session); log.debug("Removing session from processor"); ((IoProcessor) obj).remove(session); } else if (obj instanceof IoBuffer) { log.debug("Clearing session buffer"); ((IoBuffer) obj).clear(); ((IoBuffer) obj).free(); } } } } };
logger.debug("SEND[{}]: {} bytes: {}", new Object[]{ line.getSession().getId(), bytes.length, msg}); line.getSession().write(buffer).addListener(onWriteComplete); logger.debug("SEND[{}]: {} bytes: {}", new Object[]{ session.getId(), bytes.length, msg}); session.write(buffer).addListener(onWriteComplete);
@Override public ChannelHandler addListener(final ChannelHandlerListener listener) { ioFuture.addListener(new IoFutureListener<IoFuture>() { @Override public void operationComplete(final IoFuture future) {
@Override public void operationComplete(ConnectFuture future) { // fail bridge connect future if parent connect fails if ( !future.isConnected() ) { wsnConnectFuture.setException(future.getException()); } }
@Override public boolean isConnected() { return connectFuture.isConnected() && connectFuture.getSession().isConnected(); }
@Override public Channel getChannel() { return new MinaChannel(connectFuture.getSession()); }
@Override public boolean awaitUninterruptibly(long timeoutMillis) { return connectFuture.awaitUninterruptibly(timeoutMillis); }
@Override public Throwable cause() { return connectFuture.getException(); } }
@Override public ChannelHandler addListener(final ChannelHandlerListener listener) { ioFuture.addListener(new IoFutureListener<IoFuture>() { @Override public void operationComplete(final IoFuture future) {
@Override public boolean isDone() { return connectFuture.isDone(); }
@Override public void operationComplete(ConnectFuture future) { // fail bridge connect future if parent connect fails if (!future.isConnected()) { bridgeConnectFuture.setException(future.getException()); } } };
@Override public void operationComplete(ConnectFuture future) { // fail bridge connect future if parent connect fails if (!future.isConnected()) { wseConnectFuture.setException(future.getException()); } } };