Class GridCompoundFuture<T,R>

java.lang.Object
org.apache.ignite.internal.util.future.GridFutureAdapter<R>
org.apache.ignite.internal.util.future.GridCompoundFuture<T,R>
All Implemented Interfaces:
Serializable, org.apache.ignite.internal.IgniteInternalFuture<R>, IgniteInClosure<org.apache.ignite.internal.IgniteInternalFuture<T>>

public class GridCompoundFuture<T,R> extends GridFutureAdapter<R> implements IgniteInClosure<org.apache.ignite.internal.IgniteInternalFuture<T>>
Future composed of multiple inner futures.
See Also:
  • Constructor Details

    • GridCompoundFuture

      public GridCompoundFuture()
      Default constructor.
    • GridCompoundFuture

      public GridCompoundFuture(IgniteReducer<T,R> rdc)
      Parameters:
      rdc - Reducer.
  • Method Details

    • apply

      public final void apply(org.apache.ignite.internal.IgniteInternalFuture<T> fut)
      Closure body.
      Specified by:
      apply in interface IgniteInClosure<T>
      Parameters:
      fut - Closure argument.
    • cancel

      public boolean cancel() throws IgniteCheckedException
      Default no-op implementation that always returns false. Futures that do support cancellation should override this method and call GridFutureAdapter.onCancelled() callback explicitly if cancellation indeed did happen.
      Specified by:
      cancel in interface org.apache.ignite.internal.IgniteInternalFuture<T>
      Overrides:
      cancel in class GridFutureAdapter<R>
      Returns:
      True if future was canceled (i.e. was not finished prior to this call).
      Throws:
      IgniteCheckedException - If cancellation failed.
    • futures

      public final Collection<org.apache.ignite.internal.IgniteInternalFuture<T>> futures()
      Gets collection of futures.
      Returns:
      Collection of futures.
    • ignoreFailure

      protected boolean ignoreFailure(Throwable err)
      Checks if this compound future should ignore this particular exception.
      Parameters:
      err - Exception to check.
      Returns:
      True if this error should be ignored.
    • processFailure

      protected boolean processFailure(Throwable err, org.apache.ignite.internal.IgniteInternalFuture<T> fut)
      Processes error thrown by some of the inner futures.
      Parameters:
      err - Thrown exception.
      fut - Failed future.
      Returns:
      True if this error should be ignored.
    • hasPending

      protected final boolean hasPending()
      Checks if there are pending futures. This is not the same as GridFutureAdapter.isDone() because child classes may override GridFutureAdapter.onDone(Object, Throwable) call and delay completion.
      Returns:
      True if there are pending futures.
    • add

      public final GridCompoundFuture<T,R> add(org.apache.ignite.internal.IgniteInternalFuture<T> fut)
      Adds a future to this compound future.
      Parameters:
      fut - Future to add.
    • clear

      protected final void clear()
      Clear futures.
    • initialized

      public final boolean initialized()
      Returns:
      True if this future was initialized. Initialization happens when markInitialized() method is called on future.
    • markInitialized

      public final GridCompoundFuture<T,R> markInitialized()
      Mark this future as initialized.
    • logError

      protected void logError(IgniteLogger log, String msg, Throwable e)
      Parameters:
      log - IgniteLogger.
      msg - ShortMessage.
      e - Exception.
    • logDebug

      protected void logDebug(IgniteLogger log, String msg)
      Parameters:
      log - IgniteLogger.
      msg - ShortMessage.
    • future

      protected final org.apache.ignite.internal.IgniteInternalFuture<T> future(int idx)
      Returns future at the specified position in this list.
      Parameters:
      idx - - index index of the element to return
      Returns:
      Future.
    • futuresCountNoLock

      protected final int futuresCountNoLock()
      Returns:
      Futures size.
    • hasFutures

      protected final boolean hasFutures()
      Returns:
      True if has at least one future.
    • toString

      public String toString()
      Overrides:
      toString in class GridFutureAdapter<R>