/** * Returns a new {@link DefaultWriteFuture} which is already marked as 'written'. */ public static WriteFuture newWrittenFuture(IoSession session) { DefaultWriteFuture unwrittenFuture = new DefaultWriteFuture(session); unwrittenFuture.setWritten(); return unwrittenFuture; }
/** * Returns a new {@link DefaultWriteFuture} which is already marked as 'not written'. * * @param session The associated session * @param cause The reason why the message has not be written * @return A new future for not written message */ public static WriteFuture newNotWrittenFuture(IoSession session, Throwable cause) { DefaultWriteFuture unwrittenFuture = new DefaultWriteFuture(session); unwrittenFuture.setException(cause); return unwrittenFuture; }
/** * {@inheritDoc} */ @Override public WriteFuture flush() { Queue<Object> bufferQueue = getMessageQueue(); WriteFuture future = null; while (!bufferQueue.isEmpty()) { Object encodedMessage = bufferQueue.poll(); if (encodedMessage == null) { break; } // Flush only when the buffer has remaining. if (!(encodedMessage instanceof IoBuffer) || ((IoBuffer) encodedMessage).hasRemaining()) { future = new DefaultWriteFuture(session); nextFilter.filterWrite(session, new EncodedWriteRequest(encodedMessage, future, destination)); } } if (future == null) { // Creates an empty writeRequest containing the destination future = DefaultWriteFuture.newNotWrittenFuture(session, new NothingWrittenException(AbstractIoSession.MESSAGE_SENT_REQUEST)); } return future; } }
private WriteFuture initiateClosure(NextFilter nextFilter, IoSession session) throws SSLException { SslHandler handler = getSslSessionHandler(session); // if already shut down if (!handler.closeOutbound()) { return DefaultWriteFuture.newNotWrittenFuture( session, new IllegalStateException("SSL session is shut down already.")); } // there might be data to write out here? WriteFuture future = handler.writeNetBuffer(nextFilter); if (future == null) { future = DefaultWriteFuture.newWrittenFuture(session); } if (handler.isInboundDone()) { handler.destroy(); } if (session.containsAttribute(USE_NOTIFICATION)) { handler.scheduleMessageReceived(nextFilter, SESSION_UNSECURED); } return future; }
/** * Writes data to the proxy server. * * @param nextFilter the next filter * @param data Data buffer to be written. * @return A Future for the write operation */ protected WriteFuture writeData(final NextFilter nextFilter, final IoBuffer data) { // write net data ProxyHandshakeIoBuffer writeBuffer = new ProxyHandshakeIoBuffer(data); LOGGER.debug(" session write: {}", writeBuffer); WriteFuture writeFuture = new DefaultWriteFuture(getSession()); getProxyFilter().writeData(nextFilter, getSession(), new DefaultWriteRequest(writeBuffer, writeFuture), true); return writeFuture; }
/** * {@inheritDoc} */ @Override public void setWritten() { setValue(Boolean.TRUE); }
private final WriteFuture future = newWrittenFuture(null);
/** * {@inheritDoc} */ @Override public WriteFuture flush() { Queue<Object> bufferQueue = getMessageQueue(); WriteFuture future = null; while (!bufferQueue.isEmpty()) { Object encodedMessage = bufferQueue.poll(); if (encodedMessage == null) { break; } // Flush only when the buffer has remaining. if (!(encodedMessage instanceof IoBuffer) || ((IoBuffer) encodedMessage).hasRemaining()) { future = new DefaultWriteFuture(session); nextFilter.filterWrite(session, new EncodedWriteRequest(encodedMessage, future, destination)); } } if (future == null) { // Creates an empty writeRequest containing the destination future = DefaultWriteFuture.newNotWrittenFuture(session, new NothingWrittenException(AbstractIoSession.MESSAGE_SENT_REQUEST)); } return future; } }
private WriteFuture initiateClosure(NextFilter nextFilter, IoSession session) throws SSLException { SslHandler handler = getSslSessionHandler(session); // if already shut down if (!handler.closeOutbound()) { return DefaultWriteFuture.newNotWrittenFuture( session, new IllegalStateException("SSL session is shut down already.")); } // there might be data to write out here? WriteFuture future = handler.writeNetBuffer(nextFilter); if (future == null) { future = DefaultWriteFuture.newWrittenFuture(session); } if (handler.isInboundDone()) { handler.destroy(); } if (session.containsAttribute(USE_NOTIFICATION)) { handler.scheduleMessageReceived(nextFilter, SESSION_UNSECURED); } return future; }
/** * Writes data to the proxy server. * * @param nextFilter the next filter * @param data Data buffer to be written. * @return A Future for the write operation */ protected WriteFuture writeData(final NextFilter nextFilter, final IoBuffer data) { // write net data ProxyHandshakeIoBuffer writeBuffer = new ProxyHandshakeIoBuffer(data); LOGGER.debug(" session write: {}", writeBuffer); WriteFuture writeFuture = new DefaultWriteFuture(getSession()); getProxyFilter().writeData(nextFilter, getSession(), new DefaultWriteRequest(writeBuffer, writeFuture), true); return writeFuture; }
/** * {@inheritDoc} */ public void setWritten() { setValue(Boolean.TRUE); }
public WriteFuture flush() { Queue<Object> bufferQueue = getMessageQueue(); WriteFuture future = null; for (;;) { Object encodedMessage = bufferQueue.poll(); if (encodedMessage == null) { break; } // Flush only when the buffer has remaining. if (!(encodedMessage instanceof IoBuffer) || ((IoBuffer) encodedMessage).hasRemaining()) { future = new DefaultWriteFuture(session); nextFilter.filterWrite(session, new EncodedWriteRequest(encodedMessage, future, writeRequest.getDestination())); } } if (future == null) { future = DefaultWriteFuture.newNotWrittenFuture( session, new NothingWrittenException(writeRequest)); } return future; }
synchronized(sslHandler) { if (!sslHandler.closeOutbound()) { return DefaultWriteFuture.newNotWrittenFuture(session, new IllegalStateException( "SSL session is shut down already.")); future = DefaultWriteFuture.newWrittenFuture(session);
/** * Returns a new {@link DefaultWriteFuture} which is already marked as 'written'. * * @param session The associated session * @return A new future for a written message */ public static WriteFuture newWrittenFuture(IoSession session) { DefaultWriteFuture writtenFuture = new DefaultWriteFuture(session); writtenFuture.setWritten(); return writtenFuture; }
/** * Returns a new {@link DefaultWriteFuture} which is already marked as 'not written'. * * @param session The associated session * @param cause The reason why the message has not be written * @return A new future for not written message */ public static WriteFuture newNotWrittenFuture(IoSession session, Throwable cause) { DefaultWriteFuture unwrittenFuture = new DefaultWriteFuture(session); unwrittenFuture.setException(cause); return unwrittenFuture; }
/** * Writes data to the proxy server. * * @param nextFilter the next filter * @param data Data buffer to be written. */ protected WriteFuture writeData(final NextFilter nextFilter, final IoBuffer data) { // write net data ProxyHandshakeIoBuffer writeBuffer = new ProxyHandshakeIoBuffer(data); LOGGER.debug(" session write: {}", writeBuffer); WriteFuture writeFuture = new DefaultWriteFuture(getSession()); getProxyFilter().writeData(nextFilter, getSession(), new DefaultWriteRequest(writeBuffer, writeFuture), true); return writeFuture; }
/** * {@inheritDoc} */ @Override public void setWritten() { setValue(Boolean.TRUE); }
WriteFuture future = new DefaultWriteFuture(this); WriteRequest request = new DefaultWriteRequest(message, future, remoteAddress); WriteException writeException = new WriteToClosedSessionException(request); return DefaultWriteFuture.newNotWrittenFuture(this, e); WriteFuture writeFuture = new DefaultWriteFuture(this); WriteRequest writeRequest = new DefaultWriteRequest(message, writeFuture, remoteAddress);