Interface CompletionHandler

All Known Implementing Classes:
FutureCompletion, NonWorkingCompletionHandler

public interface CompletionHandler
This interface defines a handler for consuming the result of an asynchronous I/O operation.

The asynchronous channels defined in this package allow a completion handler to be specified to consume the result of an asynchronous operation. The completed() method is invoked when the I/O operation completes successfully. The failed(Throwable) method is invoked if the I/O operations fails. The implementations of these methods should complete in a timely manner so as to avoid keeping the invoking thread from dispatching to other completion handlers.

Because a CompletionHandler might have a completely different lifespan than the originating ContentChannel objects, all instances of this interface are internally backed by a reference to the Container that was active when the initial Request was created. This ensures that the configured environment of the CompletionHandler is stable throughout its lifetime. This also means that the either completed() or failed(Throwable) MUST be called in order to release that reference. Failure to do so will prevent the Container from ever shutting down.

Author:
Simon Thoresen Hult
  • Method Summary

    Modifier and Type
    Method
    Description
    void
    Invoked when an operation has completed.
    void
    Invoked when an operation fails.
  • Method Details

    • completed

      void completed()
      Invoked when an operation has completed. Notice that you MUST call either this or failed(Throwable) to release the internal Container reference. Failure to do so will prevent the Container from ever shutting down.
    • failed

      void failed(Throwable t)
      Invoked when an operation fails. Notice that you MUST call either this or completed() to release the internal Container reference. Failure to do so will prevent the Container from ever shutting down.
      Parameters:
      t - The exception to indicate why the I/O operation failed.