NioDomainSocketChannelConfig Class — netty Architecture
Architecture documentation for the NioDomainSocketChannelConfig class in NioDomainSocketChannel.java from the netty codebase.
Entity Profile
Dependency Diagram
graph TD 4dc5d821_24b6_9b83_3757_53db45985196["NioDomainSocketChannelConfig"] a7eca422_5bf2_1952_81d3_59b320111e2d["NioDomainSocketChannel.java"] 4dc5d821_24b6_9b83_3757_53db45985196 -->|defined in| a7eca422_5bf2_1952_81d3_59b320111e2d 73452e42_f9ba_e55d_88b4_022ad2d7ebaf["NioDomainSocketChannelConfig()"] 4dc5d821_24b6_9b83_3757_53db45985196 -->|method| 73452e42_f9ba_e55d_88b4_022ad2d7ebaf 5f76bd24_7dd4_5563_ff7c_daf6a085a216["isAllowHalfClosure()"] 4dc5d821_24b6_9b83_3757_53db45985196 -->|method| 5f76bd24_7dd4_5563_ff7c_daf6a085a216 66805111_d405_4de5_1bd2_85ce5a0d80ed["getOptions()"] 4dc5d821_24b6_9b83_3757_53db45985196 -->|method| 66805111_d405_4de5_1bd2_85ce5a0d80ed 35ec7fcd_0dc5_9fa9_c56c_939ac85ffe7d["T()"] 4dc5d821_24b6_9b83_3757_53db45985196 -->|method| 35ec7fcd_0dc5_9fa9_c56c_939ac85ffe7d fbb29832_168c_fd9a_aa2e_d05d6bf202ce["setOption()"] 4dc5d821_24b6_9b83_3757_53db45985196 -->|method| fbb29832_168c_fd9a_aa2e_d05d6bf202ce 014d6b57_6b02_60dc_120e_2216213af5a5["getReceiveBufferSize()"] 4dc5d821_24b6_9b83_3757_53db45985196 -->|method| 014d6b57_6b02_60dc_120e_2216213af5a5 a8b84de4_ad90_1b2f_04a7_cb24145c18b3["getSendBufferSize()"] 4dc5d821_24b6_9b83_3757_53db45985196 -->|method| a8b84de4_ad90_1b2f_04a7_cb24145c18b3 b3cc2b21_f5dc_829e_0b8e_0d945de2999a["autoReadCleared()"] 4dc5d821_24b6_9b83_3757_53db45985196 -->|method| b3cc2b21_f5dc_829e_0b8e_0d945de2999a 87d8f700_3354_bb33_af1a_b4a90e1838f3["setMaxBytesPerGatheringWrite()"] 4dc5d821_24b6_9b83_3757_53db45985196 -->|method| 87d8f700_3354_bb33_af1a_b4a90e1838f3 c0e509f0_5dcb_c849_76fa_6f34c05fdf4e["getMaxBytesPerGatheringWrite()"] 4dc5d821_24b6_9b83_3757_53db45985196 -->|method| c0e509f0_5dcb_c849_76fa_6f34c05fdf4e 42c6a20e_6bb9_329f_aa42_defc00ee327d["calculateMaxBytesPerGatheringWrite()"] 4dc5d821_24b6_9b83_3757_53db45985196 -->|method| 42c6a20e_6bb9_329f_aa42_defc00ee327d ae01a2a2_9876_32ff_7737_aea5f3299e39["SocketChannel()"] 4dc5d821_24b6_9b83_3757_53db45985196 -->|method| ae01a2a2_9876_32ff_7737_aea5f3299e39
Relationship Graph
Source Code
transport/src/main/java/io/netty/channel/socket/nio/NioDomainSocketChannel.java lines 452–641
private final class NioDomainSocketChannelConfig extends DefaultChannelConfig
implements DuplexChannelConfig {
private volatile boolean allowHalfClosure;
private volatile int maxBytesPerGatheringWrite = Integer.MAX_VALUE;
private final SocketChannel javaChannel;
private NioDomainSocketChannelConfig(NioDomainSocketChannel channel, SocketChannel javaChannel) {
super(channel);
this.javaChannel = javaChannel;
calculateMaxBytesPerGatheringWrite();
}
@Override
public boolean isAllowHalfClosure() {
return allowHalfClosure;
}
@Override
public NioDomainSocketChannelConfig setAllowHalfClosure(boolean allowHalfClosure) {
this.allowHalfClosure = allowHalfClosure;
return this;
}
@Override
public Map<ChannelOption<?>, Object> getOptions() {
List<ChannelOption<?>> options = new ArrayList<ChannelOption<?>>();
options.add(SO_RCVBUF);
options.add(SO_SNDBUF);
for (ChannelOption<?> opt : NioChannelOption.getOptions(jdkChannel())) {
options.add(opt);
}
return getOptions(super.getOptions(), options.toArray(new ChannelOption[0]));
}
@SuppressWarnings("unchecked")
@Override
public <T> T getOption(ChannelOption<T> option) {
if (option == SO_RCVBUF) {
return (T) Integer.valueOf(getReceiveBufferSize());
}
if (option == SO_SNDBUF) {
return (T) Integer.valueOf(getSendBufferSize());
}
if (option instanceof NioChannelOption) {
return NioChannelOption.getOption(jdkChannel(), (NioChannelOption<T>) option);
}
return super.getOption(option);
}
@Override
public <T> boolean setOption(ChannelOption<T> option, T value) {
if (option == SO_RCVBUF) {
validate(option, value);
setReceiveBufferSize((Integer) value);
} else if (option == SO_SNDBUF) {
validate(option, value);
setSendBufferSize((Integer) value);
} else if (option instanceof NioChannelOption) {
return NioChannelOption.setOption(jdkChannel(), (NioChannelOption<T>) option, value);
} else {
return super.setOption(option, value);
}
return true;
}
private int getReceiveBufferSize() {
try {
return javaChannel.getOption(StandardSocketOptions.SO_RCVBUF);
} catch (IOException e) {
throw new ChannelException(e);
}
}
private NioDomainSocketChannelConfig setReceiveBufferSize(int receiveBufferSize) {
try {
javaChannel.setOption(StandardSocketOptions.SO_RCVBUF, receiveBufferSize);
} catch (IOException e) {
throw new ChannelException(e);
}
return this;
}
Source
Frequently Asked Questions
What is the NioDomainSocketChannelConfig class?
NioDomainSocketChannelConfig is a class in the netty codebase, defined in transport/src/main/java/io/netty/channel/socket/nio/NioDomainSocketChannel.java.
Where is NioDomainSocketChannelConfig defined?
NioDomainSocketChannelConfig is defined in transport/src/main/java/io/netty/channel/socket/nio/NioDomainSocketChannel.java at line 452.
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free