Interface Callback

All Superinterfaces:
Invocable
All Known Subinterfaces:
Blocker.Callback, Callback.Completing, HttpStream
All Known Implementing Classes:
AsyncMiddleManServlet.ProxyReader, AsyncMiddleManServlet.ProxyResponseListener, AsyncProxyServlet.StreamReader, Callback.Completable, Callback.Nested, CompletionStreamWrapper, ContentCopier, ControlFlusher, CountingCallback, DemandingFlusher, FragmentExtension.FragmentingDemandingFlusher, FrameFlusher, FutureCallback, GzipResponseAndCallback, HTTP2Flusher, HTTP2Session.Entry, HTTP2Stream, HttpChannelState.ChannelResponse, HttpConnection.HttpStreamOverHTTP1, HttpDestination, HttpStream.Wrapper, HttpStreamOverFCGI, HttpStreamOverHTTP2, InstructionFlusher, IteratingCallback, IteratingNestedCallback, MessageFlusher, ProxyHandler.ProxyResponseListener, ProxyProtocolClientConnectionFactory.ProxyProtocolConnection, SendHandlerCallback, SharedBlockingCallback.Blocker

public interface Callback extends Invocable

A callback abstraction that handles completed/failed events of asynchronous operations.

Semantically this is equivalent to an optimise Promise<Void>, but callback is a more meaningful name than EmptyPromise

  • Field Details

    • NOOP

      static final Callback NOOP
      Instance of Adapter that can be used when the callback methods need an empty implementation without incurring in the cost of allocating a new Adapter object.
  • Method Details

    • completeWith

      default void completeWith(CompletableFuture<?> completable)

      Completes this callback with the given CompletableFuture.

      When the CompletableFuture completes normally, this callback is succeeded; when the CompletableFuture completes exceptionally, this callback is failed.

      Parameters:
      completable - the CompletableFuture that completes this callback
    • succeeded

      default void succeeded()

      Callback invoked when the operation completes.

      See Also:
    • failed

      default void failed(Throwable x)

      Callback invoked when the operation fails.

      Parameters:
      x - the reason for the operation failure
    • from

      static Callback from(CompletableFuture<?> completable)

      Creates a non-blocking callback from the given incomplete CompletableFuture.

      When the callback completes, either succeeding or failing, the CompletableFuture is also completed, respectively via CompletableFuture.complete(Object) or CompletableFuture.completeExceptionally(Throwable).

      Parameters:
      completable - the CompletableFuture to convert into a callback
      Returns:
      a callback that when completed, completes the given CompletableFuture
    • from

      static Callback from(CompletableFuture<?> completable, Invocable.InvocationType invocation)

      Creates a callback from the given incomplete CompletableFuture, with the given blocking characteristic.

      Parameters:
      completable - the CompletableFuture to convert into a callback
      invocation - whether the callback is blocking
      Returns:
      a callback that when completed, completes the given CompletableFuture
    • from

      static Callback from(Runnable success, Consumer<Throwable> failure)
      Creates a callback from the given success and failure lambdas.
      Parameters:
      success - Called when the callback succeeds
      failure - Called when the callback fails
      Returns:
      a new Callback
    • from

      static Callback from(Invocable.InvocationType invocationType, Runnable success, Consumer<Throwable> failure)
      Creates a callback with the given InvocationType from the given success and failure lambdas.
      Parameters:
      invocationType - the Callback invocation type
      success - Called when the callback succeeds
      failure - Called when the callback fails
      Returns:
      a new Callback
    • from

      static Callback from(Runnable completed)
      Creates a callback that runs completed when it succeeds or fails
      Parameters:
      completed - The completion to run on success or failure
      Returns:
      a new callback
    • from

      static Callback from(Invocable.InvocationType invocationType, Runnable completed)

      Creates a Callback with the given invocationType, that runs the given Runnable when it succeeds or fails.

      Parameters:
      invocationType - the invocation type of the returned Callback
      completed - the Runnable to run when the callback either succeeds or fails
      Returns:
      a new Callback with the given invocation type
    • from

      static Callback from(Callback callback, Runnable completed)
      Creates a nested callback that runs completed after completing the nested callback.
      Parameters:
      callback - The nested callback
      completed - The completion to run after the nested callback is completed
      Returns:
      a new callback.
    • from

      static Callback from(Callback callback, Consumer<Throwable> completed)
      Creates a nested callback that runs completed after completing the nested callback.
      Parameters:
      callback - The nested callback
      completed - The completion to run after the nested callback is completed
      Returns:
      a new callback.
    • from

      static Callback from(Runnable completed, Callback callback)
      Creates a nested callback that runs completed before completing the nested callback.
      Parameters:
      callback - The nested callback
      completed - The completion to run before the nested callback is completed. Any exceptions thrown from completed will result in a callback failure.
      Returns:
      a new callback.
    • from

      static Callback from(Callback callback, Throwable cause)
      Creates a nested callback which always fails the nested callback on completion.
      Parameters:
      callback - The nested callback
      cause - The cause to fail the nested callback, if the new callback is failed the reason will be added to this cause as a suppressed exception.
      Returns:
      a new callback.
    • from

      static Callback from(Callback callback1, Callback callback2)
      Creates a callback which combines two other callbacks and will succeed or fail them both.
      Parameters:
      callback1 - The first callback
      callback2 - The second callback
      Returns:
      a new callback.
    • combine

      static Callback combine(Callback cb1, Callback cb2)