Home / Class/ WrapperExecutor Class — netty Architecture

WrapperExecutor Class — netty Architecture

Architecture documentation for the WrapperExecutor class in DefaultChannelPipelineTest.java from the netty codebase.

Entity Profile

Dependency Diagram

graph TD
  ef120788_b621_3a9a_fb3c_f140ae2eed8b["WrapperExecutor"]
  ded22145_bbcf_15a1_69b7_30cac8d4be02["DefaultChannelPipelineTest.java"]
  ef120788_b621_3a9a_fb3c_f140ae2eed8b -->|defined in| ded22145_bbcf_15a1_69b7_30cac8d4be02
  96efb789_b5a0_1481_324c_594df4ae6b8c["Thread()"]
  ef120788_b621_3a9a_fb3c_f140ae2eed8b -->|method| 96efb789_b5a0_1481_324c_594df4ae6b8c
  56835cf9_0799_b5a1_e764_279975b2bb7a["isShuttingDown()"]
  ef120788_b621_3a9a_fb3c_f140ae2eed8b -->|method| 56835cf9_0799_b5a1_e764_279975b2bb7a
  19bd3906_4c8c_ae23_6c05_b7a84d367379["shutdownGracefully()"]
  ef120788_b621_3a9a_fb3c_f140ae2eed8b -->|method| 19bd3906_4c8c_ae23_6c05_b7a84d367379
  fe1619f6_a1fb_0e47_749e_4d83a85c9e9f["terminationFuture()"]
  ef120788_b621_3a9a_fb3c_f140ae2eed8b -->|method| fe1619f6_a1fb_0e47_749e_4d83a85c9e9f
  aec5ca36_d951_1925_7e7f_8ec541a04f28["shutdown()"]
  ef120788_b621_3a9a_fb3c_f140ae2eed8b -->|method| aec5ca36_d951_1925_7e7f_8ec541a04f28
  0cbae41b_f103_8aae_8804_8a8ebbf82d8d["shutdownNow()"]
  ef120788_b621_3a9a_fb3c_f140ae2eed8b -->|method| 0cbae41b_f103_8aae_8804_8a8ebbf82d8d
  8f566fff_df2a_ab97_ba50_ac9daad80285["isShutdown()"]
  ef120788_b621_3a9a_fb3c_f140ae2eed8b -->|method| 8f566fff_df2a_ab97_ba50_ac9daad80285
  fe4d8ef2_bd06_ba57_66bd_91057d9a8f04["isTerminated()"]
  ef120788_b621_3a9a_fb3c_f140ae2eed8b -->|method| fe4d8ef2_bd06_ba57_66bd_91057d9a8f04
  2d315f4f_010f_bbf2_71b1_d4a91d0b2e1d["awaitTermination()"]
  ef120788_b621_3a9a_fb3c_f140ae2eed8b -->|method| 2d315f4f_010f_bbf2_71b1_d4a91d0b2e1d
  222c2c5e_abf9_e30b_e2d5_ec4c28db7819["EventExecutorGroup()"]
  ef120788_b621_3a9a_fb3c_f140ae2eed8b -->|method| 222c2c5e_abf9_e30b_e2d5_ec4c28db7819
  974b0d9b_b7be_340c_fc7a_5c63cdb7f612["inEventLoop()"]
  ef120788_b621_3a9a_fb3c_f140ae2eed8b -->|method| 974b0d9b_b7be_340c_fc7a_5c63cdb7f612
  36fce318_f10e_2b70_4def_d189ac0af1ed["execute()"]
  ef120788_b621_3a9a_fb3c_f140ae2eed8b -->|method| 36fce318_f10e_2b70_4def_d189ac0af1ed

Relationship Graph

Source Code

transport/src/test/java/io/netty/channel/DefaultChannelPipelineTest.java lines 2521–2588

    private static final class WrapperExecutor extends AbstractEventExecutor {

        private final ExecutorService wrapped = Executors.newSingleThreadExecutor();
        private final Thread eventLoopThread = get(wrapped.submit(() -> Thread.currentThread()));

        private static Thread get(java.util.concurrent.Future<Thread> future) {
            try {
                return future.get();
            } catch (Exception e) {
                throw new RuntimeException("Failed to get result of future", e);
            }
        }

        @Override
        public boolean isShuttingDown() {
            return wrapped.isShutdown();
        }

        @Override
        public Future<?> shutdownGracefully(long l, long l2, TimeUnit timeUnit) {
            throw new IllegalStateException();
        }

        @Override
        public Future<?> terminationFuture() {
            throw new IllegalStateException();
        }

        @Override
        public void shutdown() {
            wrapped.shutdown();
        }

        @Override
        public List<Runnable> shutdownNow() {
            return wrapped.shutdownNow();
        }

        @Override
        public boolean isShutdown() {
            return wrapped.isShutdown();
        }

        @Override
        public boolean isTerminated() {
            return wrapped.isTerminated();
        }

        @Override
        public boolean awaitTermination(long timeout, TimeUnit unit) throws InterruptedException {
            return wrapped.awaitTermination(timeout, unit);
        }

        @Override
        public EventExecutorGroup parent() {
            return null;
        }

        @Override
        public boolean inEventLoop(Thread thread) {
            return thread == eventLoopThread;
        }

        @Override
        public void execute(Runnable command) {
            wrapped.execute(command);
        }
    }

Frequently Asked Questions

What is the WrapperExecutor class?
WrapperExecutor is a class in the netty codebase, defined in transport/src/test/java/io/netty/channel/DefaultChannelPipelineTest.java.
Where is WrapperExecutor defined?
WrapperExecutor is defined in transport/src/test/java/io/netty/channel/DefaultChannelPipelineTest.java at line 2521.

Analyze Your Own Codebase

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

Try Supermodel Free