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