Home / Class/ TestIoHandler Class — netty Architecture

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

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