Home / Class/ IoTransport Class — netty Architecture

IoTransport Class — netty Architecture

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

Entity Profile

Dependency Diagram

graph TD
  c6a6de5a_a6d3_d60d_af1b_1f703b6c16b7["IoTransport"]
  74526ebf_2ac5_f301_a335_e222b39920ba["IoTransport.java"]
  c6a6de5a_a6d3_d60d_af1b_1f703b6c16b7 -->|defined in| 74526ebf_2ac5_f301_a335_e222b39920ba
  0a7690dc_dade_aae7_a15c_4b0dca5c174a["IoTransport()"]
  c6a6de5a_a6d3_d60d_af1b_1f703b6c16b7 -->|method| 0a7690dc_dade_aae7_a15c_4b0dca5c174a
  3692dc5e_dd9f_46ea_78fd_45f17258434f["EventLoop()"]
  c6a6de5a_a6d3_d60d_af1b_1f703b6c16b7 -->|method| 3692dc5e_dd9f_46ea_78fd_45f17258434f
  ae9f0836_efc3_29f9_3200_0cbd4a050bf7["socketChannel()"]
  c6a6de5a_a6d3_d60d_af1b_1f703b6c16b7 -->|method| ae9f0836_efc3_29f9_3200_0cbd4a050bf7
  346a6a0e_acdd_386f_5eae_8cc43b4c218b["datagramChannel()"]
  c6a6de5a_a6d3_d60d_af1b_1f703b6c16b7 -->|method| 346a6a0e_acdd_386f_5eae_8cc43b4c218b

Relationship Graph

Source Code

handler-ssl-ocsp/src/main/java/io/netty/handler/ssl/ocsp/IoTransport.java lines 33–88

public final class IoTransport {
    private final EventLoop eventLoop;
    private final ChannelFactory<SocketChannel> socketChannel;
    private final ChannelFactory<DatagramChannel> datagramChannel;

    /**
     * Default {@link IoTransport} which uses {@link NioIoHandler}, {@link NioSocketChannel}
     * and {@link NioDatagramChannel}.
     */
    public static final IoTransport DEFAULT = new IoTransport(
            new MultiThreadIoEventLoopGroup(1, NioIoHandler.newFactory()).next(),
            new ChannelFactory<SocketChannel>() {
                @Override
                public SocketChannel newChannel() {
                    return new NioSocketChannel();
                }
            },
            new ChannelFactory<DatagramChannel>() {
                @Override
                public DatagramChannel newChannel() {
                    return new NioDatagramChannel();
                }
            });

    /**
     * Create a new {@link IoTransport} instance
     *
     * @param eventLoop       {@link EventLoop} to use for I/O
     * @param socketChannel   {@link SocketChannel} for TCP DNS lookup and OCSP query
     * @param datagramChannel {@link DatagramChannel} for UDP DNS lookup
     * @return {@link NullPointerException} if any parameter is {@code null}
     */
    public static IoTransport create(EventLoop eventLoop, ChannelFactory<SocketChannel> socketChannel,
                                     ChannelFactory<DatagramChannel> datagramChannel) {
        return new IoTransport(eventLoop, socketChannel, datagramChannel);
    }

    private IoTransport(EventLoop eventLoop, ChannelFactory<SocketChannel> socketChannel,
                        ChannelFactory<DatagramChannel> datagramChannel) {
        this.eventLoop = checkNotNull(eventLoop, "EventLoop");
        this.socketChannel = checkNotNull(socketChannel, "SocketChannel");
        this.datagramChannel = checkNotNull(datagramChannel, "DatagramChannel");
    }

    public EventLoop eventLoop() {
        return eventLoop;
    }

    public ChannelFactory<SocketChannel> socketChannel() {
        return socketChannel;
    }

    public ChannelFactory<DatagramChannel> datagramChannel() {
        return datagramChannel;
    }
}

Frequently Asked Questions

What is the IoTransport class?
IoTransport is a class in the netty codebase, defined in handler-ssl-ocsp/src/main/java/io/netty/handler/ssl/ocsp/IoTransport.java.
Where is IoTransport defined?
IoTransport is defined in handler-ssl-ocsp/src/main/java/io/netty/handler/ssl/ocsp/IoTransport.java at line 33.

Analyze Your Own Codebase

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

Try Supermodel Free