T
- the type of value that the operation will produce.public interface AsyncCommand<T>
asynchronously
or synchronously
. When run
asynchronously, execution and idle timeouts must be applied by the calling code; they are not built in.
When the operation completes, it will return an object of type T
. If T
is Void
, the operation
will return null
on completion. Typically this means the operation uses some form of callback, allowing the
caller to process the results as they are produced rather than returning them on completion.
Modifier and Type | Method and Description |
---|---|
Future<T> |
start()
Starts the operation and returns a
Future , which can be used to cancel the operation or block until it
has finished. |
Command<T> |
synchronous()
Transforms this
AsyncCommand into a Command which may be called synchronously. |
@Nonnull Future<T> start()
Future
, which can be used to cancel the operation or block until it
has finished.Future
instance for the operation resultIllegalStateException
- if this AsyncCommand
has been transformed to synchronous()
@Nonnull Command<T> synchronous()
AsyncCommand
into a Command
which may be called synchronously. Timeouts may be
set on the returned Command
before it is called.
Once an AsyncCommand
has been transformed for synchronous use, it may no longer be used
asynchronously
.
Command
for running the operation embodied by this AsyncCommand
synchronouslyCopyright © 2019 Atlassian. All rights reserved.