A reference to an ongoing asynchronous SDK operation, whose result is not yet known. It provides methods for checking whether the operation is complete, and whether it has succeeded. Additionally, it offers the ability to get its result either synchronously (blocking), or asynchronously via listeners.
If the operation succeeds, all completion and success listeners will be notified. The result will also be made available via the getResult()
method. If the operation fails, all completion and failure listeners will be notified, and the error will be made available via the getError()
method.
PendingOperation<Result,Error> addOnCompleteListener(OnCompleteListener<Result, Error> listener)Adds an OnCompleteListener that will be invoked after the operation completes.
PendingOperation<Result,Error> addOnSuccessListener(OnSuccessListener<Result> listener)Adds an OnSuccessListener that will be invoked after the operation succeeds.
PendingOperation<Result,Error> addOnFailureListener(OnFailureListener<Error> listener)Adds an OnFailureListener that will be invoked after the operation fails.
boolean isComplete()Returns whether the operation has completed. If
true
, you can callisSuccessful()
to check whether it succeeded.
boolean isSuccessful()Returns whether the operation has succeeded. If this method returns
true
, you can callgetResult()
to obtain the result. Otherwise if it returnsfalse
, you can callgetError()
to obtain the error.
PendingOperation<Result, Error> waitFor(int timeout, TimeUnit unit)Waits till the operation is complete for the duration that is specified. Call {@link #isComplete()} after this method, to check whether the operation completed or if this method timed out.
@throws
InterruptedException
if thread is interrupted while waiting
PendingOperation<Result, Error> waitTillCompletion()Waits till the operation is complete.
throws
InterruptedException
if thread is interrupted while waiting.
Result getResult()Returns the result of the operation.
throws
InterruptedException
if thread is interrupted while waiting. throwsSdkException
if the operation has failed.
Result getResultOrNull()Returns the result of the operation if it completed successfully. Otherwise returns
null
.
Error getError()Returns the error encountered during the operation.
throws
IllegalStateException
if the operation is not yet complete. throwsSdkException
if the PendingOperation has succeeded.