net.minecraftforge.common.util

## Interface AsynchronousExecutor.CallBackProvider<P,T,C,E extends java.lang.Throwable>

- All Superinterfaces:
    java.util.concurrent.ThreadFactory
  Enclosing class:
    AsynchronousExecutor<P,T,C,E extends java.lang.Throwable>

      public static interface AsynchronousExecutor.CallBackProvider<P,T,C,E extends java.lang.Throwable>
      extends java.util.concurrent.ThreadFactory

- - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `T` | `callStage1(P parameter)` Normally an asynchronous call, but can be synchronous
    `void` | `callStage2(P parameter, T object)` Synchronous call
    `void` | `callStage3(P parameter, T object, C callback)` Synchronous call, called multiple times, once per registered callback

    - ### Methods inherited from interface java.util.concurrent.ThreadFactory

      `newThread`

- - ### Method Detail

    - #### callStage1

          T callStage1(P parameter)
                       throws E extends java.lang.Throwable

      Normally an asynchronous call, but can be synchronous
      Parameters:
        `parameter` - parameter object provided
      Returns:
        the created object
      Throws:
        `E extends java.lang.Throwable`

    - #### callStage2

          void callStage2(P parameter,
                        T object)
                          throws E extends java.lang.Throwable

      Synchronous call
      Parameters:
        `parameter` - parameter object provided
        `object` - the previously created object
      Throws:
        `E extends java.lang.Throwable`

    - #### callStage3

          void callStage3(P parameter,
                        T object,
                        C callback)
                          throws E extends java.lang.Throwable

      Synchronous call, called multiple times, once per registered callback
      Parameters:
        `parameter` - parameter object provided
        `object` - the previously created object
        `callback` - the current callback to execute
      Throws:
        `E extends java.lang.Throwable`