# CompletionHandler

public interface **CompletionHandler** 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 `https://developers.google.com/j2objc/javadoc/jre/reference/java/nio/channels/CompletionHandler.html#completed(V,%20A)` method is invoked when the I/O operation
completes successfully. The `https://developers.google.com/j2objc/javadoc/jre/reference/java/nio/channels/CompletionHandler.html#failed(java.lang.Throwable,%20A)` 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.

### Public Method Summary

|---|---|
| abstract void | [completed](https://developers.google.com/j2objc/javadoc/jre/reference/java/nio/channels/CompletionHandler.html#completed(V,%20A))(V result, A attachment) Invoked when an operation has completed. |
| abstract void | [failed](https://developers.google.com/j2objc/javadoc/jre/reference/java/nio/channels/CompletionHandler.html#failed(java.lang.Throwable,%20A))([Throwable](https://developers.google.com/j2objc/javadoc/jre/reference/java/lang/Throwable.html) exc, A attachment) Invoked when an operation fails. |

## Public Methods

#### public abstract void
**completed**
(V result, A attachment)

Invoked when an operation has completed.

##### Parameters

| result | The result of the I/O operation. |
| attachment | The object attached to the I/O operation when it was initiated. |
|---|---|

#### public abstract void
**failed**
([Throwable](https://developers.google.com/j2objc/javadoc/jre/reference/java/lang/Throwable.html) exc, A attachment)

Invoked when an operation fails.

##### Parameters

| exc | The exception to indicate why the I/O operation failed |
| attachment | The object attached to the I/O operation when it was initiated. |
|---|---|