IoUringServerSocketChannelConfig Class — netty Architecture
Architecture documentation for the IoUringServerSocketChannelConfig class in IoUringServerSocketChannelConfig.java from the netty codebase.
Entity Profile
Dependency Diagram
graph TD 0002af80_d567_2dae_91b9_d7ecc7afe1eb["IoUringServerSocketChannelConfig"] a49eaa2d_8d5a_bfd1_2bfa_7dafed0a4e2c["IoUringServerSocketChannelConfig.java"] 0002af80_d567_2dae_91b9_d7ecc7afe1eb -->|defined in| a49eaa2d_8d5a_bfd1_2bfa_7dafed0a4e2c 0afc66eb_5ec0_c91d_86ce_d98b65d82e47["IoUringServerSocketChannelConfig()"] 0002af80_d567_2dae_91b9_d7ecc7afe1eb -->|method| 0afc66eb_5ec0_c91d_86ce_d98b65d82e47 81fbf8d0_5dd2_5827_5a6c_16b310880e6a["getOptions()"] 0002af80_d567_2dae_91b9_d7ecc7afe1eb -->|method| 81fbf8d0_5dd2_5827_5a6c_16b310880e6a a3ab4ec2_4522_71be_bd42_c8ef1b5e3b39["T()"] 0002af80_d567_2dae_91b9_d7ecc7afe1eb -->|method| a3ab4ec2_4522_71be_bd42_c8ef1b5e3b39 bd8cf641_1381_2813_2875_e68c7a144e7c["setOption()"] 0002af80_d567_2dae_91b9_d7ecc7afe1eb -->|method| bd8cf641_1381_2813_2875_e68c7a144e7c bd2a0016_3a7e_d769_7937_7e395a44d1f8["isReuseAddress()"] 0002af80_d567_2dae_91b9_d7ecc7afe1eb -->|method| bd2a0016_3a7e_d769_7937_7e395a44d1f8 0cceca3d_337f_de6a_3dc1_1ec917c4bbe5["getReceiveBufferSize()"] 0002af80_d567_2dae_91b9_d7ecc7afe1eb -->|method| 0cceca3d_337f_de6a_3dc1_1ec917c4bbe5 2804eea3_7023_2b47_f2a1_d87013b03390["getBacklog()"] 0002af80_d567_2dae_91b9_d7ecc7afe1eb -->|method| 2804eea3_7023_2b47_f2a1_d87013b03390 235c564c_ea2e_aac0_52f7_ebd8dd154a2d["isReusePort()"] 0002af80_d567_2dae_91b9_d7ecc7afe1eb -->|method| 235c564c_ea2e_aac0_52f7_ebd8dd154a2d 613b6590_0791_93ec_1559_b860f5887264["isFreeBind()"] 0002af80_d567_2dae_91b9_d7ecc7afe1eb -->|method| 613b6590_0791_93ec_1559_b860f5887264 36bd286d_68b0_43a3_3966_0c904651de56["isIpTransparent()"] 0002af80_d567_2dae_91b9_d7ecc7afe1eb -->|method| 36bd286d_68b0_43a3_3966_0c904651de56 b2a00c30_745c_3211_d6b9_8703881f2b27["getTcpDeferAccept()"] 0002af80_d567_2dae_91b9_d7ecc7afe1eb -->|method| b2a00c30_745c_3211_d6b9_8703881f2b27 3c9d068d_1a82_bc72_804a_9530ce0279f6["getTcpFastopen()"] 0002af80_d567_2dae_91b9_d7ecc7afe1eb -->|method| 3c9d068d_1a82_bc72_804a_9530ce0279f6
Relationship Graph
Source Code
transport-classes-io_uring/src/main/java/io/netty/channel/uring/IoUringServerSocketChannelConfig.java lines 34–348
final class IoUringServerSocketChannelConfig extends IoUringChannelConfig implements ServerSocketChannelConfig {
private volatile int backlog = NetUtil.SOMAXCONN;
private volatile int pendingFastOpenRequestsThreshold;
IoUringServerSocketChannelConfig(AbstractIoUringServerChannel channel) {
super(channel, new ServerChannelRecvByteBufAllocator());
setReuseAddress(true);
}
@Override
public Map<ChannelOption<?>, Object> getOptions() {
return getOptions(super.getOptions(), ChannelOption.SO_RCVBUF, ChannelOption.SO_REUSEADDR,
ChannelOption.SO_BACKLOG, IoUringChannelOption.SO_REUSEPORT, IoUringChannelOption.IP_FREEBIND,
IoUringChannelOption.IP_TRANSPARENT, IoUringChannelOption.TCP_DEFER_ACCEPT, ChannelOption.TCP_FASTOPEN);
}
@SuppressWarnings("unchecked")
@Override
public <T> T getOption(ChannelOption<T> option) {
if (option == ChannelOption.SO_RCVBUF) {
return (T) Integer.valueOf(getReceiveBufferSize());
}
if (option == ChannelOption.SO_REUSEADDR) {
return (T) Boolean.valueOf(isReuseAddress());
}
if (option == ChannelOption.SO_BACKLOG) {
return (T) Integer.valueOf(getBacklog());
}
if (option == IoUringChannelOption.SO_REUSEPORT) {
return (T) Boolean.valueOf(isReusePort());
}
if (option == IoUringChannelOption.IP_FREEBIND) {
return (T) Boolean.valueOf(isFreeBind());
}
if (option == IoUringChannelOption.IP_TRANSPARENT) {
return (T) Boolean.valueOf(isIpTransparent());
}
if (option == IoUringChannelOption.TCP_DEFER_ACCEPT) {
return (T) Integer.valueOf(getTcpDeferAccept());
}
if (option == TCP_FASTOPEN) {
return (T) Integer.valueOf(getTcpFastopen());
}
return super.getOption(option);
}
@Override
public <T> boolean setOption(ChannelOption<T> option, T value) {
validate(option, value);
if (option == ChannelOption.SO_RCVBUF) {
setReceiveBufferSize((Integer) value);
} else if (option == ChannelOption.SO_REUSEADDR) {
setReuseAddress((Boolean) value);
} else if (option == ChannelOption.SO_BACKLOG) {
setBacklog((Integer) value);
} else if (option == IoUringChannelOption.SO_REUSEPORT) {
setReusePort((Boolean) value);
} else if (option == IoUringChannelOption.IP_FREEBIND) {
setFreeBind((Boolean) value);
} else if (option == IoUringChannelOption.IP_TRANSPARENT) {
setIpTransparent((Boolean) value);
} else if (option == IoUringChannelOption.TCP_DEFER_ACCEPT) {
setTcpDeferAccept((Integer) value);
} else if (option == TCP_FASTOPEN) {
setTcpFastopen((Integer) value);
} else {
return super.setOption(option, value);
}
return true;
}
@Override
public IoUringServerSocketChannelConfig setPerformancePreferences(int connectionTime, int latency, int bandwidth) {
return this;
}
@Override
public boolean isReuseAddress() {
try {
return ((AbstractIoUringChannel) channel).socket.isReuseAddress();
Source
Frequently Asked Questions
What is the IoUringServerSocketChannelConfig class?
IoUringServerSocketChannelConfig is a class in the netty codebase, defined in transport-classes-io_uring/src/main/java/io/netty/channel/uring/IoUringServerSocketChannelConfig.java.
Where is IoUringServerSocketChannelConfig defined?
IoUringServerSocketChannelConfig is defined in transport-classes-io_uring/src/main/java/io/netty/channel/uring/IoUringServerSocketChannelConfig.java at line 34.
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free