class DefaultNioSocketChannelConfig extends DefaultSocketChannelConfig implements NioSocketChannelConfig
NioSocketChannelConfig implementation.| Modifier and Type | Field and Description |
|---|---|
private static ReceiveBufferSizePredictorFactory |
DEFAULT_PREDICTOR_FACTORY |
private static InternalLogger |
logger |
private ReceiveBufferSizePredictor |
predictor |
private ReceiveBufferSizePredictorFactory |
predictorFactory |
private int |
writeBufferHighWaterMark |
private int |
writeBufferLowWaterMark |
private int |
writeSpinCount |
| Constructor and Description |
|---|
DefaultNioSocketChannelConfig(java.net.Socket socket) |
| Modifier and Type | Method and Description |
|---|---|
ReceiveBufferSizePredictor |
getReceiveBufferSizePredictor()
Returns the
ReceiveBufferSizePredictor which predicts the
number of readable bytes in the socket receive buffer. |
ReceiveBufferSizePredictorFactory |
getReceiveBufferSizePredictorFactory()
Returns the
ReceiveBufferSizePredictorFactory which creates a new
ReceiveBufferSizePredictor when a new channel is created and
no ReceiveBufferSizePredictor was set. |
int |
getWriteBufferHighWaterMark()
Returns the high water mark of the write buffer.
|
int |
getWriteBufferLowWaterMark()
Returns the low water mark of the write buffer.
|
int |
getWriteSpinCount()
Returns the maximum loop count for a write operation until
WritableByteChannel.write(ByteBuffer) returns a non-zero value. |
boolean |
setOption(java.lang.String key,
java.lang.Object value)
Sets a configuration property with the specified name and value.
|
void |
setOptions(java.util.Map<java.lang.String,java.lang.Object> options)
Sets the configuration properties from the specified
Map. |
void |
setReceiveBufferSizePredictor(ReceiveBufferSizePredictor predictor)
Sets the
ReceiveBufferSizePredictor which predicts the
number of readable bytes in the socket receive buffer. |
void |
setReceiveBufferSizePredictorFactory(ReceiveBufferSizePredictorFactory predictorFactory)
Sets the
ReceiveBufferSizePredictor which creates a new
ReceiveBufferSizePredictor when a new channel is created and
no ReceiveBufferSizePredictor was set. |
void |
setWriteBufferHighWaterMark(int writeBufferHighWaterMark)
Sets the high water mark of the write buffer.
|
private void |
setWriteBufferHighWaterMark0(int writeBufferHighWaterMark) |
void |
setWriteBufferLowWaterMark(int writeBufferLowWaterMark)
Sets the low water mark of the write buffer.
|
private void |
setWriteBufferLowWaterMark0(int writeBufferLowWaterMark) |
void |
setWriteSpinCount(int writeSpinCount)
Sets the maximum loop count for a write operation until
WritableByteChannel.write(ByteBuffer) returns a non-zero value. |
getReceiveBufferSize, getSendBufferSize, getSoLinger, getTrafficClass, isKeepAlive, isReuseAddress, isTcpNoDelay, setKeepAlive, setPerformancePreferences, setReceiveBufferSize, setReuseAddress, setSendBufferSize, setSoLinger, setTcpNoDelay, setTrafficClassgetBufferFactory, getConnectTimeoutMillis, getPipelineFactory, setBufferFactory, setConnectTimeoutMillis, setPipelineFactoryclone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitgetReceiveBufferSize, getSendBufferSize, getSoLinger, getTrafficClass, isKeepAlive, isReuseAddress, isTcpNoDelay, setKeepAlive, setPerformancePreferences, setReceiveBufferSize, setReuseAddress, setSendBufferSize, setSoLinger, setTcpNoDelay, setTrafficClassgetBufferFactory, getConnectTimeoutMillis, getPipelineFactory, setBufferFactory, setConnectTimeoutMillis, setPipelineFactoryprivate static final InternalLogger logger
private static final ReceiveBufferSizePredictorFactory DEFAULT_PREDICTOR_FACTORY
private volatile int writeBufferHighWaterMark
private volatile int writeBufferLowWaterMark
private volatile ReceiveBufferSizePredictor predictor
private volatile ReceiveBufferSizePredictorFactory predictorFactory
private volatile int writeSpinCount
DefaultNioSocketChannelConfig(java.net.Socket socket)
public void setOptions(java.util.Map<java.lang.String,java.lang.Object> options)
ChannelConfigMap.setOptions in interface ChannelConfigsetOptions in class DefaultChannelConfigpublic boolean setOption(java.lang.String key,
java.lang.Object value)
ChannelConfig
public boolean setOption(String name, Object value) {
if (super.setOption(name, value)) {
return true;
}
if (name.equals("additionalOption")) {
....
return true;
}
return false;
}
setOption in interface ChannelConfigsetOption in class DefaultSocketChannelConfigtrue if and only if the property has been setpublic int getWriteBufferHighWaterMark()
NioChannelConfigChannel.isWritable()
will start to return false.getWriteBufferHighWaterMark in interface NioChannelConfigpublic void setWriteBufferHighWaterMark(int writeBufferHighWaterMark)
NioChannelConfigChannel.isWritable()
will start to return false.setWriteBufferHighWaterMark in interface NioChannelConfigprivate void setWriteBufferHighWaterMark0(int writeBufferHighWaterMark)
public int getWriteBufferLowWaterMark()
NioChannelConfigChannel.isWritable() will start to return
true again.getWriteBufferLowWaterMark in interface NioChannelConfigpublic void setWriteBufferLowWaterMark(int writeBufferLowWaterMark)
NioChannelConfigChannel.isWritable() will start toreturn
true again.setWriteBufferLowWaterMark in interface NioChannelConfigprivate void setWriteBufferLowWaterMark0(int writeBufferLowWaterMark)
public int getWriteSpinCount()
NioChannelConfigWritableByteChannel.write(ByteBuffer) returns a non-zero value.
It is similar to what a spin lock is used for in concurrency programming.
It improves memory utilization and write throughput depending on
the platform that JVM runs on. The default value is 16.getWriteSpinCount in interface NioChannelConfigpublic void setWriteSpinCount(int writeSpinCount)
NioChannelConfigWritableByteChannel.write(ByteBuffer) returns a non-zero value.
It is similar to what a spin lock is used for in concurrency programming.
It improves memory utilization and write throughput depending on
the platform that JVM runs on. The default value is 16.setWriteSpinCount in interface NioChannelConfigpublic ReceiveBufferSizePredictor getReceiveBufferSizePredictor()
NioSocketChannelConfigReceiveBufferSizePredictor which predicts the
number of readable bytes in the socket receive buffer. The default
predictor is AdaptiveReceiveBufferSizePredictor(64, 1024, 65536).getReceiveBufferSizePredictor in interface NioSocketChannelConfigpublic void setReceiveBufferSizePredictor(ReceiveBufferSizePredictor predictor)
NioSocketChannelConfigReceiveBufferSizePredictor which predicts the
number of readable bytes in the socket receive buffer. The default
predictor is AdaptiveReceiveBufferSizePredictor(64, 1024, 65536).setReceiveBufferSizePredictor in interface NioSocketChannelConfigpublic ReceiveBufferSizePredictorFactory getReceiveBufferSizePredictorFactory()
NioSocketChannelConfigReceiveBufferSizePredictorFactory which creates a new
ReceiveBufferSizePredictor when a new channel is created and
no ReceiveBufferSizePredictor was set. If no predictor was set
for the channel, NioSocketChannelConfig.setReceiveBufferSizePredictor(ReceiveBufferSizePredictor)
will be called with the new predictor. The default factory is
AdaptiveReceiveBufferSizePredictorFactory(64, 1024, 65536).getReceiveBufferSizePredictorFactory in interface NioSocketChannelConfigpublic void setReceiveBufferSizePredictorFactory(ReceiveBufferSizePredictorFactory predictorFactory)
NioSocketChannelConfigReceiveBufferSizePredictor which creates a new
ReceiveBufferSizePredictor when a new channel is created and
no ReceiveBufferSizePredictor was set. If no predictor was set
for the channel, NioSocketChannelConfig.setReceiveBufferSizePredictor(ReceiveBufferSizePredictor)
will be called with the new predictor. The default factory is
AdaptiveReceiveBufferSizePredictorFactory(64, 1024, 65536).setReceiveBufferSizePredictorFactory in interface NioSocketChannelConfig