Home / Class/ CompleteFuture Class — netty Architecture

CompleteFuture Class — netty Architecture

Architecture documentation for the CompleteFuture class in CompleteFuture.java from the netty codebase.

Entity Profile

Dependency Diagram

graph TD
  3ff4b834_94f3_e526_984d_edda7ab1f853["CompleteFuture"]
  2ed73552_2f12_a9a1_7aeb_748fad49dbf2["CompleteFuture.java"]
  3ff4b834_94f3_e526_984d_edda7ab1f853 -->|defined in| 2ed73552_2f12_a9a1_7aeb_748fad49dbf2
  13bbd867_59f6_1611_e13d_87fd2dcbdcc8["CompleteFuture()"]
  3ff4b834_94f3_e526_984d_edda7ab1f853 -->|method| 13bbd867_59f6_1611_e13d_87fd2dcbdcc8
  9e870834_6dc4_d72c_b94a_7f28feb48ece["EventExecutor()"]
  3ff4b834_94f3_e526_984d_edda7ab1f853 -->|method| 9e870834_6dc4_d72c_b94a_7f28feb48ece
  f3a7735b_7290_cb9e_e4b6_6b87465b37cb["addListener()"]
  3ff4b834_94f3_e526_984d_edda7ab1f853 -->|method| f3a7735b_7290_cb9e_e4b6_6b87465b37cb
  9f7c87a5_e5b3_df05_409c_25f45ee2217b["addListeners()"]
  3ff4b834_94f3_e526_984d_edda7ab1f853 -->|method| 9f7c87a5_e5b3_df05_409c_25f45ee2217b
  7d038ae8_10f5_ea33_9df7_b9be5f2225b7["removeListener()"]
  3ff4b834_94f3_e526_984d_edda7ab1f853 -->|method| 7d038ae8_10f5_ea33_9df7_b9be5f2225b7
  3540c71f_857b_a8f7_ee50_504cb27b7372["removeListeners()"]
  3ff4b834_94f3_e526_984d_edda7ab1f853 -->|method| 3540c71f_857b_a8f7_ee50_504cb27b7372
  780d6ec3_dfa2_bab1_53ca_be303f24ed5f["await()"]
  3ff4b834_94f3_e526_984d_edda7ab1f853 -->|method| 780d6ec3_dfa2_bab1_53ca_be303f24ed5f
  161d780d_9896_9137_dc1e_0673caf8086c["sync()"]
  3ff4b834_94f3_e526_984d_edda7ab1f853 -->|method| 161d780d_9896_9137_dc1e_0673caf8086c
  adeda7f7_1735_f242_4e7a_d040fde360d6["syncUninterruptibly()"]
  3ff4b834_94f3_e526_984d_edda7ab1f853 -->|method| adeda7f7_1735_f242_4e7a_d040fde360d6
  1be18a3d_f51a_07d4_75e1_f657aaf9bdc8["awaitUninterruptibly()"]
  3ff4b834_94f3_e526_984d_edda7ab1f853 -->|method| 1be18a3d_f51a_07d4_75e1_f657aaf9bdc8
  55ac3625_75fb_d497_88cc_9f47c573d863["isDone()"]
  3ff4b834_94f3_e526_984d_edda7ab1f853 -->|method| 55ac3625_75fb_d497_88cc_9f47c573d863
  b8c17c65_f309_3bae_d696_b8129a811223["isCancellable()"]
  3ff4b834_94f3_e526_984d_edda7ab1f853 -->|method| b8c17c65_f309_3bae_d696_b8129a811223
  62bb3227_22c0_df6a_5f07_f18390709332["isCancelled()"]
  3ff4b834_94f3_e526_984d_edda7ab1f853 -->|method| 62bb3227_22c0_df6a_5f07_f18390709332

Relationship Graph

Source Code

common/src/main/java/io/netty/util/concurrent/CompleteFuture.java lines 26–150

public abstract class CompleteFuture<V> extends AbstractFuture<V> {

    private final EventExecutor executor;

    /**
     * Creates a new instance.
     *
     * @param executor the {@link EventExecutor} associated with this future
     */
    protected CompleteFuture(EventExecutor executor) {
        this.executor = executor;
    }

    /**
     * Return the {@link EventExecutor} which is used by this {@link CompleteFuture}.
     */
    protected EventExecutor executor() {
        return executor;
    }

    @Override
    public Future<V> addListener(GenericFutureListener<? extends Future<? super V>> listener) {
        DefaultPromise.notifyListener(executor(), this, ObjectUtil.checkNotNull(listener, "listener"));
        return this;
    }

    @Override
    public Future<V> addListeners(GenericFutureListener<? extends Future<? super V>>... listeners) {
        for (GenericFutureListener<? extends Future<? super V>> l:
                ObjectUtil.checkNotNull(listeners, "listeners")) {

            if (l == null) {
                break;
            }
            DefaultPromise.notifyListener(executor(), this, l);
        }
        return this;
    }

    @Override
    public Future<V> removeListener(GenericFutureListener<? extends Future<? super V>> listener) {
        // NOOP
        return this;
    }

    @Override
    public Future<V> removeListeners(GenericFutureListener<? extends Future<? super V>>... listeners) {
        // NOOP
        return this;
    }

    @Override
    public Future<V> await() throws InterruptedException {
        if (Thread.interrupted()) {
            throw new InterruptedException();
        }
        return this;
    }

    @Override
    public boolean await(long timeout, TimeUnit unit) throws InterruptedException {
        if (Thread.interrupted()) {
            throw new InterruptedException();
        }
        return true;
    }

    @Override
    public Future<V> sync() throws InterruptedException {
        return this;
    }

    @Override
    public Future<V> syncUninterruptibly() {
        return this;
    }

    @Override
    public boolean await(long timeoutMillis) throws InterruptedException {
        if (Thread.interrupted()) {
            throw new InterruptedException();

Frequently Asked Questions

What is the CompleteFuture class?
CompleteFuture is a class in the netty codebase, defined in common/src/main/java/io/netty/util/concurrent/CompleteFuture.java.
Where is CompleteFuture defined?
CompleteFuture is defined in common/src/main/java/io/netty/util/concurrent/CompleteFuture.java at line 26.

Analyze Your Own Codebase

Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.

Try Supermodel Free