TestIoHandler Class — netty Architecture
Architecture documentation for the TestIoHandler class in ManualIoEventLoopTest.java from the netty codebase.
Entity Profile
Dependency Diagram
graph TD e0068e14_7695_ca0a_3a43_711d09310817["TestIoHandler"] 00750916_11ec_74e4_0199_6353ea56d6f2["ManualIoEventLoopTest.java"] e0068e14_7695_ca0a_3a43_711d09310817 -->|defined in| 00750916_11ec_74e4_0199_6353ea56d6f2 3bf16ebe_cf8d_923f_9559_397075f9b2a1["TestIoHandler()"] e0068e14_7695_ca0a_3a43_711d09310817 -->|method| 3bf16ebe_cf8d_923f_9559_397075f9b2a1 17fe9f1f_a3b5_2263_35c3_5f726f4c64f9["prepareToDestroy()"] e0068e14_7695_ca0a_3a43_711d09310817 -->|method| 17fe9f1f_a3b5_2263_35c3_5f726f4c64f9 3a07ac06_4b77_6139_113e_089aad0ba7b6["destroy()"] e0068e14_7695_ca0a_3a43_711d09310817 -->|method| 3a07ac06_4b77_6139_113e_089aad0ba7b6 a05920b0_8e35_ecfe_e49a_ba906275d8a7["IoRegistration()"] e0068e14_7695_ca0a_3a43_711d09310817 -->|method| a05920b0_8e35_ecfe_e49a_ba906275d8a7 dd092a42_5af7_b9b2_613d_02fcc8859897["wakeup()"] e0068e14_7695_ca0a_3a43_711d09310817 -->|method| dd092a42_5af7_b9b2_613d_02fcc8859897 a184d64e_5ebb_5009_edad_a36cf4e3aea8["run()"] e0068e14_7695_ca0a_3a43_711d09310817 -->|method| a184d64e_5ebb_5009_edad_a36cf4e3aea8 51292671_b104_27c9_0279_c7e771e957d0["isCompatible()"] e0068e14_7695_ca0a_3a43_711d09310817 -->|method| 51292671_b104_27c9_0279_c7e771e957d0
Relationship Graph
Source Code
transport/src/test/java/io/netty/channel/ManualIoEventLoopTest.java lines 374–442
private static class TestIoHandler implements IoHandler {
private final Semaphore semaphore;
TestIoHandler(Semaphore semaphore) {
this.semaphore = semaphore;
}
@Override
public void prepareToDestroy() {
// NOOP
}
@Override
public void destroy() {
// NOOP
}
@Override
public IoRegistration register(final IoHandle handle) {
return new IoRegistration() {
private final AtomicBoolean canceled = new AtomicBoolean();
@Override
public <T> T attachment() {
return null;
}
@Override
public long submit(IoOps ops) {
return 0;
}
@Override
public boolean cancel() {
return canceled.compareAndSet(false, true);
}
@Override
public boolean isValid() {
return !canceled.get();
}
};
}
@Override
public void wakeup() {
semaphore.release();
}
@Override
public int run(IoHandlerContext context) {
try {
if (context.canBlock()) {
if (context.deadlineNanos() != -1) {
long delay = context.delayNanos(System.nanoTime());
semaphore.tryAcquire(delay, TimeUnit.NANOSECONDS);
}
}
} catch (InterruptedException e) {
Thread.currentThread().interrupt();
}
return 0;
}
@Override
public boolean isCompatible(Class<? extends IoHandle> handleType) {
return false;
}
}
Source
Frequently Asked Questions
What is the TestIoHandler class?
TestIoHandler is a class in the netty codebase, defined in transport/src/test/java/io/netty/channel/ManualIoEventLoopTest.java.
Where is TestIoHandler defined?
TestIoHandler is defined in transport/src/test/java/io/netty/channel/ManualIoEventLoopTest.java at line 374.
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free