package io.vertx.ext.unit;
import io.vertx.codegen.annotations.GenIgnore;
import io.vertx.codegen.annotations.Nullable;
import io.vertx.codegen.annotations.VertxGen;
import io.vertx.core.AsyncResult;
import io.vertx.core.Future;
import io.vertx.core.Handler;
import io.vertx.core.Promise;
A completion object that emits completion notifications either succeeded or failed.
Author: Julien Viet
/**
* A completion object that emits completion notifications either <i>succeeded</i> or <i>failed</i>.
*
* @author <a href="mailto:julien@julienviet.com">Julien Viet</a>
*/
@VertxGen
public interface Completion<T> {
Completes the future upon completion, otherwise fails it.
Params: - future – the future to resolve
/**
* Completes the future upon completion, otherwise fails it.
*
* @param future the future to resolve
*/
void resolve(Promise<T> future);
Completes the future upon completion, otherwise fails it.
Params: - future – the future to resolve
Deprecated: use resolve(Promise)
instead
/**
* Completes the future upon completion, otherwise fails it.
*
* @param future the future to resolve
* @deprecated use {@link #resolve(Promise)} instead
*/
@Deprecated
@GenIgnore
void resolve(Future<T> future);
Returns: true if this completion is completed
/**
* @return true if this completion is completed
*/
boolean isCompleted();
Returns: true if this completion is completed and succeeded
/**
* @return true if this completion is completed and succeeded
*/
boolean isSucceeded();
Returns: true if the this completion is completed and failed
/**
* @return true if the this completion is completed and failed
*/
boolean isFailed();
Completion handler to receive a completion signal when this completions completes.
Params: - completionHandler – the completion handler
/**
* Completion handler to receive a completion signal when this completions completes.
*
* @param completionHandler the completion handler
*/
void handler(Handler<AsyncResult<@Nullable T>> completionHandler);
Cause the current thread to wait until this completion completes.
If the current thread is interrupted, an exception will be thrown.
/**
* Cause the current thread to wait until this completion completes.<p/>
*
* If the current thread is interrupted, an exception will be thrown.
*/
void await();
Cause the current thread to wait until this completion completes with a configurable timeout.
If completion times out or the current thread is interrupted, an exception will be thrown.
Params: - timeoutMillis – the timeout in milliseconds
/**
* Cause the current thread to wait until this completion completes with a configurable timeout.<p/>
*
* If completion times out or the current thread is interrupted, an exception will be thrown.
*
* @param timeoutMillis the timeout in milliseconds
*/
void await(long timeoutMillis);
Cause the current thread to wait until this completion completes and succeeds.
If the current thread is interrupted or the suite fails, an exception will be thrown.
/**
* Cause the current thread to wait until this completion completes and succeeds.<p/>
*
* If the current thread is interrupted or the suite fails, an exception will be thrown.
*/
void awaitSuccess();
Cause the current thread to wait until this completion completes and succeeds with a configurable timeout.
If completion times out or the current thread is interrupted or the suite fails, an exception will be thrown.
Params: - timeoutMillis – the timeout in milliseconds
/**
* Cause the current thread to wait until this completion completes and succeeds with a configurable timeout.<p/>
*
* If completion times out or the current thread is interrupted or the suite fails, an exception will be thrown.
*
* @param timeoutMillis the timeout in milliseconds
*/
void awaitSuccess(long timeoutMillis);
}