GrizzlyResponseFuture(final AsyncHandler asyncHandler) { this.asyncHandler = asyncHandler; delegate = Futures.<V>createSafeFuture(); delegate.addCompletionHandler(this); }
/** * This method will block if the async write queue is currently larger * than the configured maximum. The amount of time that this method * will block is dependent on the write timeout of the transport * associated with the specified connection. */ private static void blockUntilQueueFree(final Connection c) { if (!c.canWrite()) { final FutureImpl<Boolean> future = Futures.createSafeFuture(); // Connection may be obtained by calling FilterChainContext.getConnection(). c.notifyCanWrite(new WriteHandler() { @Override public void onWritePossible() throws Exception { future.result(TRUE); } @Override public void onError(Throwable t) { future.failure(makeIOException(t)); } }); block(c, future); } }
@Override public <M> GrizzlyFuture<WriteResult<M, SocketAddress>> write(final M message) { final FutureImpl<WriteResult<M, SocketAddress>> future = Futures.createSafeFuture(); write(null, message, Futures.toCompletionHandler(future), null); return future; }
@Override public GrizzlyFuture<Closeable> close() { final FutureImpl<Closeable> future = Futures.createSafeFuture(); closeGracefully0(Futures.toCompletionHandler(future), CloseReason.LOCALLY_CLOSED_REASON); return future; }
@Override public GrizzlyFuture<Closeable> terminate() { final FutureImpl<Closeable> future = Futures.createSafeFuture(); close0(Futures.toCompletionHandler(future), CloseType.LOCALLY, null, false); return future; }
@Override public GrizzlyFuture<Closeable> terminate() { final FutureImpl<Closeable> future = Futures.createSafeFuture(); terminate0(Futures.toCompletionHandler(future), CloseReason.LOCALLY_CLOSED_REASON); return future; }
/** * {@inheritDoc} */ @Override public final GrizzlyFuture<ReadResult<Buffer, L>> read( final Connection<L> connection, final Buffer buffer) { final FutureImpl<ReadResult<Buffer, L>> future = Futures.createSafeFuture(); read(connection, buffer, Futures.toCompletionHandler(future), null); return future; }
/** * {@inheritDoc} */ @Override public final GrizzlyFuture<ReadResult<Buffer, L>> read( final Connection<L> connection, final Buffer buffer) { final FutureImpl<ReadResult<Buffer, L>> future = Futures.createSafeFuture(); read(connection, buffer, Futures.toCompletionHandler(future), null); return future; }
@Override public GrizzlyFuture<Closeable> close() { final FutureImpl<Closeable> future = Futures.createSafeFuture(); close0(Futures.toCompletionHandler(future), CloseType.LOCALLY, null, true); return future; }
@Override public <M> GrizzlyFuture<ReadResult<M, SocketAddress>> read() { final FutureImpl<ReadResult<M, SocketAddress>> future = Futures.createSafeFuture(); read(Futures.toCompletionHandler(future)); return future; }
@Override public GrizzlyFuture<Closeable> close() { final FutureImpl<Closeable> future = Futures.createSafeFuture(); closeGracefully0(Futures.toCompletionHandler(future), CloseReason.LOCALLY_CLOSED_REASON); return future; }
/** * {@inheritDoc} */ @Override public final GrizzlyFuture<ReadResult<Buffer, L>> read( final Connection<L> connection, final Buffer buffer) { final FutureImpl<ReadResult<Buffer, L>> future = Futures.createSafeFuture(); read(connection, buffer, Futures.toCompletionHandler(future), null); return future; }
@Override public <M> GrizzlyFuture<ReadResult<M, SocketAddress>> read() { final FutureImpl<ReadResult<M, SocketAddress>> future = Futures.createSafeFuture(); read(Futures.toCompletionHandler(future)); return future; }
@Override public GrizzlyFuture<Closeable> terminate() { final FutureImpl<Closeable> future = Futures.createSafeFuture(); terminate0(Futures.toCompletionHandler(future), CloseReason.LOCALLY_CLOSED_REASON); return future; }
@Override public GrizzlyFuture<Closeable> terminate() { final FutureImpl<Closeable> future = Futures.createSafeFuture(); close0(Futures.toCompletionHandler(future), CloseType.LOCALLY, null, false); return future; }
@Override public GrizzlyFuture<Closeable> close() { final FutureImpl<Closeable> future = Futures.createSafeFuture(); close0(Futures.toCompletionHandler(future), CloseType.LOCALLY, null, true); return future; }
@Override public final GrizzlyFuture<RegisterChannelResult> registerChannelAsync( final SelectableChannel channel, final int interestOps, final Object attachment) { final FutureImpl<RegisterChannelResult> future = Futures.createSafeFuture(); registerChannelAsync(channel, interestOps, attachment, Futures.toCompletionHandler(future)); return future; }
@Override public final GrizzlyFuture<RegisterChannelResult> registerChannelAsync( final SelectableChannel channel, final int interestOps, final Object attachment) { final FutureImpl<RegisterChannelResult> future = Futures.createSafeFuture(); registerChannelAsync(channel, interestOps, attachment, Futures.toCompletionHandler(future)); return future; }
@Override public final GrizzlyFuture<RegisterChannelResult> registerChannelAsync( final SelectableChannel channel, final int interestOps, final Object attachment) { final FutureImpl<RegisterChannelResult> future = Futures.createSafeFuture(); registerChannelAsync(channel, interestOps, attachment, Futures.toCompletionHandler(future)); return future; }
@Override public final GrizzlyFuture<RegisterChannelResult> registerChannelAsync( final SelectableChannel channel, final int interestOps, final Object attachment) { final FutureImpl<RegisterChannelResult> future = Futures.createSafeFuture(); registerChannelAsync(channel, interestOps, attachment, Futures.toCompletionHandler(future)); return future; }