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);
}
}
Source
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