DefaultSocketChannelConfig Class — netty Architecture
Architecture documentation for the DefaultSocketChannelConfig class in DefaultSocketChannelConfig.java from the netty codebase.
Entity Profile
Dependency Diagram
graph TD 19c985a5_6de2_b73a_b8be_44fdb6a24808["DefaultSocketChannelConfig"] 0fb06619_6bec_ba61_ef93_d890bad6f51e["DefaultSocketChannelConfig.java"] 19c985a5_6de2_b73a_b8be_44fdb6a24808 -->|defined in| 0fb06619_6bec_ba61_ef93_d890bad6f51e 8126db1b_df9e_7175_2a70_c87599cfc149["DefaultSocketChannelConfig()"] 19c985a5_6de2_b73a_b8be_44fdb6a24808 -->|method| 8126db1b_df9e_7175_2a70_c87599cfc149 90732b6f_1bd9_bce7_f3f4_c7afee67ebb2["getOptions()"] 19c985a5_6de2_b73a_b8be_44fdb6a24808 -->|method| 90732b6f_1bd9_bce7_f3f4_c7afee67ebb2 4c65ec91_af0a_e9b6_3595_34996601a775["T()"] 19c985a5_6de2_b73a_b8be_44fdb6a24808 -->|method| 4c65ec91_af0a_e9b6_3595_34996601a775 7ca6c435_75cf_5397_91f4_82717eb9af94["setOption()"] 19c985a5_6de2_b73a_b8be_44fdb6a24808 -->|method| 7ca6c435_75cf_5397_91f4_82717eb9af94 8d630525_f78e_9576_abe4_710134f07cd6["getReceiveBufferSize()"] 19c985a5_6de2_b73a_b8be_44fdb6a24808 -->|method| 8d630525_f78e_9576_abe4_710134f07cd6 aa38495f_fcb6_ae31_5a8a_315f93eb121c["getSendBufferSize()"] 19c985a5_6de2_b73a_b8be_44fdb6a24808 -->|method| aa38495f_fcb6_ae31_5a8a_315f93eb121c 5a5894fc_9ffa_4d5d_5481_b372e6f5445f["getSoLinger()"] 19c985a5_6de2_b73a_b8be_44fdb6a24808 -->|method| 5a5894fc_9ffa_4d5d_5481_b372e6f5445f 7ba30374_82db_956f_92d5_89f58be6db83["getTrafficClass()"] 19c985a5_6de2_b73a_b8be_44fdb6a24808 -->|method| 7ba30374_82db_956f_92d5_89f58be6db83 cfaa208a_f118_9a49_5965_357f1ae4ffb5["isKeepAlive()"] 19c985a5_6de2_b73a_b8be_44fdb6a24808 -->|method| cfaa208a_f118_9a49_5965_357f1ae4ffb5 fbc32fd7_746b_147c_dc4e_32887d902c9b["isReuseAddress()"] 19c985a5_6de2_b73a_b8be_44fdb6a24808 -->|method| fbc32fd7_746b_147c_dc4e_32887d902c9b 52cfd547_1968_1c51_418c_2363558f67bb["isTcpNoDelay()"] 19c985a5_6de2_b73a_b8be_44fdb6a24808 -->|method| 52cfd547_1968_1c51_418c_2363558f67bb bc7a79f4_0570_4734_f156_c4453aaa4e81["SocketChannelConfig()"] 19c985a5_6de2_b73a_b8be_44fdb6a24808 -->|method| bc7a79f4_0570_4734_f156_c4453aaa4e81 02d91e23_55ea_8989_a22e_ae112cf53766["isAllowHalfClosure()"] 19c985a5_6de2_b73a_b8be_44fdb6a24808 -->|method| 02d91e23_55ea_8989_a22e_ae112cf53766
Relationship Graph
Source Code
transport/src/main/java/io/netty/channel/socket/DefaultSocketChannelConfig.java lines 37–347
public class DefaultSocketChannelConfig extends DefaultChannelConfig
implements SocketChannelConfig {
protected final Socket javaSocket;
private volatile boolean allowHalfClosure;
/**
* Creates a new instance.
*/
public DefaultSocketChannelConfig(SocketChannel channel, Socket javaSocket) {
super(channel);
this.javaSocket = ObjectUtil.checkNotNull(javaSocket, "javaSocket");
// Enable TCP_NODELAY by default if possible.
if (PlatformDependent.canEnableTcpNoDelayByDefault()) {
try {
setTcpNoDelay(true);
} catch (Exception e) {
// Ignore.
}
}
}
@Override
public Map<ChannelOption<?>, Object> getOptions() {
return getOptions(
super.getOptions(),
SO_RCVBUF, SO_SNDBUF, TCP_NODELAY, SO_KEEPALIVE, SO_REUSEADDR, SO_LINGER, IP_TOS,
ALLOW_HALF_CLOSURE);
}
@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 == TCP_NODELAY) {
return (T) Boolean.valueOf(isTcpNoDelay());
}
if (option == SO_KEEPALIVE) {
return (T) Boolean.valueOf(isKeepAlive());
}
if (option == SO_REUSEADDR) {
return (T) Boolean.valueOf(isReuseAddress());
}
if (option == SO_LINGER) {
return (T) Integer.valueOf(getSoLinger());
}
if (option == IP_TOS) {
return (T) Integer.valueOf(getTrafficClass());
}
if (option == ALLOW_HALF_CLOSURE) {
return (T) Boolean.valueOf(isAllowHalfClosure());
}
return super.getOption(option);
}
@Override
public <T> boolean setOption(ChannelOption<T> option, T value) {
validate(option, value);
if (option == SO_RCVBUF) {
setReceiveBufferSize((Integer) value);
} else if (option == SO_SNDBUF) {
setSendBufferSize((Integer) value);
} else if (option == TCP_NODELAY) {
setTcpNoDelay((Boolean) value);
} else if (option == SO_KEEPALIVE) {
setKeepAlive((Boolean) value);
} else if (option == SO_REUSEADDR) {
setReuseAddress((Boolean) value);
} else if (option == SO_LINGER) {
setSoLinger((Integer) value);
} else if (option == IP_TOS) {
setTrafficClass((Integer) value);
} else if (option == ALLOW_HALF_CLOSURE) {
Source
Frequently Asked Questions
What is the DefaultSocketChannelConfig class?
DefaultSocketChannelConfig is a class in the netty codebase, defined in transport/src/main/java/io/netty/channel/socket/DefaultSocketChannelConfig.java.
Where is DefaultSocketChannelConfig defined?
DefaultSocketChannelConfig is defined in transport/src/main/java/io/netty/channel/socket/DefaultSocketChannelConfig.java at line 37.
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free