Class DefaultNioSocketChannelConfig
- java.lang.Object
-
- org.jboss.netty.channel.DefaultChannelConfig
-
- org.jboss.netty.channel.socket.DefaultSocketChannelConfig
-
- org.jboss.netty.channel.socket.nio.DefaultNioSocketChannelConfig
-
- All Implemented Interfaces:
ChannelConfig,NioChannelConfig,NioSocketChannelConfig,SocketChannelConfig
class DefaultNioSocketChannelConfig extends DefaultSocketChannelConfig implements NioSocketChannelConfig
The defaultNioSocketChannelConfigimplementation.
-
-
Field Summary
Fields Modifier and Type Field Description private static ReceiveBufferSizePredictorFactoryDEFAULT_PREDICTOR_FACTORYprivate static InternalLoggerloggerprivate ReceiveBufferSizePredictorpredictorprivate ReceiveBufferSizePredictorFactorypredictorFactoryprivate intwriteBufferHighWaterMarkprivate intwriteBufferLowWaterMarkprivate intwriteSpinCount
-
Constructor Summary
Constructors Constructor Description DefaultNioSocketChannelConfig(java.net.Socket socket)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description ReceiveBufferSizePredictorgetReceiveBufferSizePredictor()Returns theReceiveBufferSizePredictorwhich predicts the number of readable bytes in the socket receive buffer.ReceiveBufferSizePredictorFactorygetReceiveBufferSizePredictorFactory()Returns theReceiveBufferSizePredictorFactorywhich creates a newReceiveBufferSizePredictorwhen a new channel is created and noReceiveBufferSizePredictorwas set.intgetWriteBufferHighWaterMark()Returns the high water mark of the write buffer.intgetWriteBufferLowWaterMark()Returns the low water mark of the write buffer.intgetWriteSpinCount()Returns the maximum loop count for a write operation untilWritableByteChannel.write(ByteBuffer)returns a non-zero value.booleansetOption(java.lang.String key, java.lang.Object value)Sets a configuration property with the specified name and value.voidsetOptions(java.util.Map<java.lang.String,java.lang.Object> options)Sets the configuration properties from the specifiedMap.voidsetReceiveBufferSizePredictor(ReceiveBufferSizePredictor predictor)Sets theReceiveBufferSizePredictorwhich predicts the number of readable bytes in the socket receive buffer.voidsetReceiveBufferSizePredictorFactory(ReceiveBufferSizePredictorFactory predictorFactory)Sets theReceiveBufferSizePredictorwhich creates a newReceiveBufferSizePredictorwhen a new channel is created and noReceiveBufferSizePredictorwas set.voidsetWriteBufferHighWaterMark(int writeBufferHighWaterMark)Sets the high water mark of the write buffer.private voidsetWriteBufferHighWaterMark0(int writeBufferHighWaterMark)voidsetWriteBufferLowWaterMark(int writeBufferLowWaterMark)Sets the low water mark of the write buffer.private voidsetWriteBufferLowWaterMark0(int writeBufferLowWaterMark)voidsetWriteSpinCount(int writeSpinCount)Sets the maximum loop count for a write operation untilWritableByteChannel.write(ByteBuffer)returns a non-zero value.-
Methods inherited from class org.jboss.netty.channel.socket.DefaultSocketChannelConfig
getReceiveBufferSize, getSendBufferSize, getSoLinger, getTrafficClass, isKeepAlive, isReuseAddress, isTcpNoDelay, setKeepAlive, setPerformancePreferences, setReceiveBufferSize, setReuseAddress, setSendBufferSize, setSoLinger, setTcpNoDelay, setTrafficClass
-
Methods inherited from class org.jboss.netty.channel.DefaultChannelConfig
getBufferFactory, getConnectTimeoutMillis, getPipelineFactory, setBufferFactory, setConnectTimeoutMillis, setPipelineFactory
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface org.jboss.netty.channel.ChannelConfig
getBufferFactory, getConnectTimeoutMillis, getPipelineFactory, setBufferFactory, setConnectTimeoutMillis, setPipelineFactory
-
Methods inherited from interface org.jboss.netty.channel.socket.SocketChannelConfig
getReceiveBufferSize, getSendBufferSize, getSoLinger, getTrafficClass, isKeepAlive, isReuseAddress, isTcpNoDelay, setKeepAlive, setPerformancePreferences, setReceiveBufferSize, setReuseAddress, setSendBufferSize, setSoLinger, setTcpNoDelay, setTrafficClass
-
-
-
-
Field Detail
-
logger
private static final InternalLogger logger
-
DEFAULT_PREDICTOR_FACTORY
private static final ReceiveBufferSizePredictorFactory DEFAULT_PREDICTOR_FACTORY
-
writeBufferHighWaterMark
private volatile int writeBufferHighWaterMark
-
writeBufferLowWaterMark
private volatile int writeBufferLowWaterMark
-
predictor
private volatile ReceiveBufferSizePredictor predictor
-
predictorFactory
private volatile ReceiveBufferSizePredictorFactory predictorFactory
-
writeSpinCount
private volatile int writeSpinCount
-
-
Method Detail
-
setOptions
public void setOptions(java.util.Map<java.lang.String,java.lang.Object> options)
Description copied from interface:ChannelConfigSets the configuration properties from the specifiedMap.- Specified by:
setOptionsin interfaceChannelConfig- Overrides:
setOptionsin classDefaultChannelConfig
-
setOption
public boolean setOption(java.lang.String key, java.lang.Object value)Description copied from interface:ChannelConfigSets a configuration property with the specified name and value. To override this method properly, you must call the super class:public boolean setOption(String name, Object value) { if (super.setOption(name, value)) { return true; } if (name.equals("additionalOption")) { .... return true; } return false; }- Specified by:
setOptionin interfaceChannelConfig- Overrides:
setOptionin classDefaultSocketChannelConfig- Returns:
trueif and only if the property has been set
-
getWriteBufferHighWaterMark
public int getWriteBufferHighWaterMark()
Description copied from interface:NioChannelConfigReturns the high water mark of the write buffer. If the number of bytes queued in the write buffer exceeds this value,Channel.isWritable()will start to returnfalse.- Specified by:
getWriteBufferHighWaterMarkin interfaceNioChannelConfig
-
setWriteBufferHighWaterMark
public void setWriteBufferHighWaterMark(int writeBufferHighWaterMark)
Description copied from interface:NioChannelConfigSets the high water mark of the write buffer. If the number of bytes queued in the write buffer exceeds this value,Channel.isWritable()will start to returnfalse.- Specified by:
setWriteBufferHighWaterMarkin interfaceNioChannelConfig
-
setWriteBufferHighWaterMark0
private void setWriteBufferHighWaterMark0(int writeBufferHighWaterMark)
-
getWriteBufferLowWaterMark
public int getWriteBufferLowWaterMark()
Description copied from interface:NioChannelConfigReturns the low water mark of the write buffer. Once the number of bytes queued in the write buffer exceeded the high water mark and then dropped down below this value,Channel.isWritable()will start to returntrueagain.- Specified by:
getWriteBufferLowWaterMarkin interfaceNioChannelConfig
-
setWriteBufferLowWaterMark
public void setWriteBufferLowWaterMark(int writeBufferLowWaterMark)
Description copied from interface:NioChannelConfigSets the low water mark of the write buffer. Once the number of bytes queued in the write buffer exceeded the high water mark and then dropped down below this value,Channel.isWritable()will start toreturntrueagain.- Specified by:
setWriteBufferLowWaterMarkin interfaceNioChannelConfig
-
setWriteBufferLowWaterMark0
private void setWriteBufferLowWaterMark0(int writeBufferLowWaterMark)
-
getWriteSpinCount
public int getWriteSpinCount()
Description copied from interface:NioChannelConfigReturns the maximum loop count for a write operation untilWritableByteChannel.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 is16.- Specified by:
getWriteSpinCountin interfaceNioChannelConfig
-
setWriteSpinCount
public void setWriteSpinCount(int writeSpinCount)
Description copied from interface:NioChannelConfigSets the maximum loop count for a write operation untilWritableByteChannel.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 is16.- Specified by:
setWriteSpinCountin interfaceNioChannelConfig
-
getReceiveBufferSizePredictor
public ReceiveBufferSizePredictor getReceiveBufferSizePredictor()
Description copied from interface:NioSocketChannelConfigReturns theReceiveBufferSizePredictorwhich predicts the number of readable bytes in the socket receive buffer. The default predictor isAdaptiveReceiveBufferSizePredictor(64, 1024, 65536).- Specified by:
getReceiveBufferSizePredictorin interfaceNioSocketChannelConfig
-
setReceiveBufferSizePredictor
public void setReceiveBufferSizePredictor(ReceiveBufferSizePredictor predictor)
Description copied from interface:NioSocketChannelConfigSets theReceiveBufferSizePredictorwhich predicts the number of readable bytes in the socket receive buffer. The default predictor isAdaptiveReceiveBufferSizePredictor(64, 1024, 65536).- Specified by:
setReceiveBufferSizePredictorin interfaceNioSocketChannelConfig
-
getReceiveBufferSizePredictorFactory
public ReceiveBufferSizePredictorFactory getReceiveBufferSizePredictorFactory()
Description copied from interface:NioSocketChannelConfigReturns theReceiveBufferSizePredictorFactorywhich creates a newReceiveBufferSizePredictorwhen a new channel is created and noReceiveBufferSizePredictorwas set. If no predictor was set for the channel,NioSocketChannelConfig.setReceiveBufferSizePredictor(ReceiveBufferSizePredictor)will be called with the new predictor. The default factory isAdaptiveReceiveBufferSizePredictorFactory(64, 1024, 65536).- Specified by:
getReceiveBufferSizePredictorFactoryin interfaceNioSocketChannelConfig
-
setReceiveBufferSizePredictorFactory
public void setReceiveBufferSizePredictorFactory(ReceiveBufferSizePredictorFactory predictorFactory)
Description copied from interface:NioSocketChannelConfigSets theReceiveBufferSizePredictorwhich creates a newReceiveBufferSizePredictorwhen a new channel is created and noReceiveBufferSizePredictorwas set. If no predictor was set for the channel,NioSocketChannelConfig.setReceiveBufferSizePredictor(ReceiveBufferSizePredictor)will be called with the new predictor. The default factory isAdaptiveReceiveBufferSizePredictorFactory(64, 1024, 65536).- Specified by:
setReceiveBufferSizePredictorFactoryin interfaceNioSocketChannelConfig
-
-