Home / Class/ NioDomainSocketChannel Class — netty Architecture

NioDomainSocketChannel Class — netty Architecture

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

Entity Profile

Dependency Diagram

graph TD
  cfd0ddf4_54f6_2e2b_6078_ee84ec74aadf["NioDomainSocketChannel"]
  a7eca422_5bf2_1952_81d3_59b320111e2d["NioDomainSocketChannel.java"]
  cfd0ddf4_54f6_2e2b_6078_ee84ec74aadf -->|defined in| a7eca422_5bf2_1952_81d3_59b320111e2d
  22866c19_c26c_c5b4_88d3_d4d8232345de["SocketChannel()"]
  cfd0ddf4_54f6_2e2b_6078_ee84ec74aadf -->|method| 22866c19_c26c_c5b4_88d3_d4d8232345de
  8757d457_0ce6_a381_0be6_49cdaf5f31f0["NioDomainSocketChannel()"]
  cfd0ddf4_54f6_2e2b_6078_ee84ec74aadf -->|method| 8757d457_0ce6_a381_0be6_49cdaf5f31f0
  e53a663b_087b_37c0_b21b_f3368072a529["ServerChannel()"]
  cfd0ddf4_54f6_2e2b_6078_ee84ec74aadf -->|method| e53a663b_087b_37c0_b21b_f3368072a529
  5b8155b8_9eda_b3f4_f2cc_61e3fe2e5fd2["ChannelConfig()"]
  cfd0ddf4_54f6_2e2b_6078_ee84ec74aadf -->|method| 5b8155b8_9eda_b3f4_f2cc_61e3fe2e5fd2
  abdcfeba_d403_ecfb_f0e7_44a08c56f567["isActive()"]
  cfd0ddf4_54f6_2e2b_6078_ee84ec74aadf -->|method| abdcfeba_d403_ecfb_f0e7_44a08c56f567
  efe689ba_9cb3_9b03_cd79_5505829e3f70["isOutputShutdown()"]
  cfd0ddf4_54f6_2e2b_6078_ee84ec74aadf -->|method| efe689ba_9cb3_9b03_cd79_5505829e3f70
  ff7fff77_b288_43ac_4ede_7e956d6a2345["isInputShutdown()"]
  cfd0ddf4_54f6_2e2b_6078_ee84ec74aadf -->|method| ff7fff77_b288_43ac_4ede_7e956d6a2345
  7f2cb5b7_5ecd_a31c_de91_98b80a90df94["isShutdown()"]
  cfd0ddf4_54f6_2e2b_6078_ee84ec74aadf -->|method| 7f2cb5b7_5ecd_a31c_de91_98b80a90df94
  973d780c_e9ec_3049_dfbf_70a61b5ce653["doShutdownOutput()"]
  cfd0ddf4_54f6_2e2b_6078_ee84ec74aadf -->|method| 973d780c_e9ec_3049_dfbf_70a61b5ce653
  7924ce6e_7fc8_8654_f124_b154d0db8202["ChannelFuture()"]
  cfd0ddf4_54f6_2e2b_6078_ee84ec74aadf -->|method| 7924ce6e_7fc8_8654_f124_b154d0db8202
  7d612b3f_4a08_9312_afd0_42cd65955877["isInputShutdown0()"]
  cfd0ddf4_54f6_2e2b_6078_ee84ec74aadf -->|method| 7d612b3f_4a08_9312_afd0_42cd65955877
  b1eb90f6_17df_415e_16cf_7f832305ae46["shutdownOutputDone()"]
  cfd0ddf4_54f6_2e2b_6078_ee84ec74aadf -->|method| b1eb90f6_17df_415e_16cf_7f832305ae46
  12853805_3904_a6ce_1fa1_e8da7a111015["shutdownDone()"]
  cfd0ddf4_54f6_2e2b_6078_ee84ec74aadf -->|method| 12853805_3904_a6ce_1fa1_e8da7a111015

Relationship Graph

Source Code

transport/src/main/java/io/netty/channel/socket/nio/NioDomainSocketChannel.java lines 63–642

public final class NioDomainSocketChannel extends AbstractNioByteChannel
        implements DuplexChannel {
    private static final InternalLogger logger = InternalLoggerFactory.getInstance(NioDomainSocketChannel.class);
    private static final SelectorProvider DEFAULT_SELECTOR_PROVIDER = SelectorProvider.provider();

    private static final Method OPEN_SOCKET_CHANNEL_WITH_FAMILY =
            SelectorProviderUtil.findOpenMethod("openSocketChannel");

    private final ChannelConfig config;
    private volatile boolean isInputShutdown;
    private volatile boolean isOutputShutdown;

    static SocketChannel newChannel(SelectorProvider provider) {
        if (PlatformDependent.javaVersion() < 16) {
            throw new UnsupportedOperationException("Only supported on java 16+");
        }
        try {
            SocketChannel channel = SelectorProviderUtil.newDomainSocketChannel(
                    OPEN_SOCKET_CHANNEL_WITH_FAMILY, provider);
            if (channel == null) {
                throw new ChannelException("Failed to open a socket.");
            }
            return channel;
        } catch (IOException e) {
            throw new ChannelException("Failed to open a socket.", e);
        }
    }

    /**
     * Create a new instance
     */
    public NioDomainSocketChannel() {
        this(DEFAULT_SELECTOR_PROVIDER);
    }

    /**
     * Create a new instance using the given {@link SelectorProvider}.
     */
    public NioDomainSocketChannel(SelectorProvider provider) {
        this(newChannel(provider));
    }

    /**
     * Create a new instance using the given {@link SocketChannel}.
     */
    public NioDomainSocketChannel(SocketChannel socket) {
        this(null, socket);
    }

    /**
     * Create a new instance
     *
     * @param parent    the {@link Channel} which created this instance or {@code null} if it was created by the user
     * @param socket    the {@link SocketChannel} which will be used
     */
    public NioDomainSocketChannel(Channel parent, SocketChannel socket) {
        super(parent, socket);
        if (PlatformDependent.javaVersion() < 16) {
            throw new UnsupportedOperationException("Only supported on java 16+");
        }
        config = new NioDomainSocketChannelConfig(this, socket);
    }

    @Override
    public ServerChannel parent() {
        return (ServerChannel) super.parent();
    }

    @Override
    public ChannelConfig config() {
        return config;
    }

    @Override
    protected SocketChannel javaChannel() {
        return (SocketChannel) super.javaChannel();
    }

    @Override
    public boolean isActive() {
        SocketChannel ch = javaChannel();

Frequently Asked Questions

What is the NioDomainSocketChannel class?
NioDomainSocketChannel is a class in the netty codebase, defined in transport/src/main/java/io/netty/channel/socket/nio/NioDomainSocketChannel.java.
Where is NioDomainSocketChannel defined?
NioDomainSocketChannel is defined in transport/src/main/java/io/netty/channel/socket/nio/NioDomainSocketChannel.java at line 63.

Analyze Your Own Codebase

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

Try Supermodel Free