Class StateFutureImpl<T>

  • All Implemented Interfaces:
    org.apache.flink.api.common.state.v2.StateFuture<T>, InternalStateFuture<T>

    @Internal
    public class StateFutureImpl<T>
    extends Object
    implements InternalStateFuture<T>
    The default implementation of StateFuture. This is managed by the runtime framework and should never be directly created in user code. It will handle the completion and callback trigger, and most of the design are borrowed from the CompletableFuture. In the basic version of this implementation, we wrap CompletableFuture for simplification. TODO: remove CompletableFuture.

    This class is on hot path and very complex, please take care of the performance as well as the running thread of each block when you decide to touch it.

    • Method Detail

      • thenApply

        public <U> org.apache.flink.api.common.state.v2.StateFuture<U> thenApply​(org.apache.flink.util.function.FunctionWithException<? super T,​? extends U,​? extends Exception> fn)
        Specified by:
        thenApply in interface org.apache.flink.api.common.state.v2.StateFuture<T>
      • thenAccept

        public org.apache.flink.api.common.state.v2.StateFuture<Void> thenAccept​(org.apache.flink.util.function.ThrowingConsumer<? super T,​? extends Exception> action)
        Specified by:
        thenAccept in interface org.apache.flink.api.common.state.v2.StateFuture<T>
      • thenCompose

        public <U> org.apache.flink.api.common.state.v2.StateFuture<U> thenCompose​(org.apache.flink.util.function.FunctionWithException<? super T,​? extends org.apache.flink.api.common.state.v2.StateFuture<U>,​? extends Exception> action)
        Specified by:
        thenCompose in interface org.apache.flink.api.common.state.v2.StateFuture<T>
      • thenCombine

        public <U,​V> org.apache.flink.api.common.state.v2.StateFuture<V> thenCombine​(org.apache.flink.api.common.state.v2.StateFuture<? extends U> other,
                                                                                           org.apache.flink.util.function.BiFunctionWithException<? super T,​? super U,​? extends V,​? extends Exception> fn)
        Specified by:
        thenCombine in interface org.apache.flink.api.common.state.v2.StateFuture<T>
      • makeNewStateFuture

        public <A> StateFutureImpl<A> makeNewStateFuture()
        Make a new future based on context of this future. Subclasses need to overload this method to generate their own instances (if needed).
        Returns:
        the new created future.
      • callbackRegistered

        public void callbackRegistered()
        Will be triggered when a callback is registered.
      • postComplete

        public void postComplete​(boolean inCallbackRunner)
        Will be triggered when this future completes.
      • callbackFinished

        public void callbackFinished()
        Will be triggered when a callback finishes processing.
      • thenSyncAccept

        public void thenSyncAccept​(org.apache.flink.util.function.ThrowingConsumer<? super T,​? extends Exception> action)
        Description copied from interface: InternalStateFuture
        Accept the action in the same thread with the one of complete (or current thread if it has been completed).
        Specified by:
        thenSyncAccept in interface InternalStateFuture<T>
        Parameters:
        action - the action to perform.