public class DefaultChannelConfig extends java.lang.Object implements ChannelConfig
SocketChannelConfig
implementation.Modifier and Type | Field and Description |
---|---|
private ByteBufAllocator |
allocator |
private boolean |
autoClose |
private int |
autoRead |
private static java.util.concurrent.atomic.AtomicIntegerFieldUpdater<DefaultChannelConfig> |
AUTOREAD_UPDATER |
protected Channel |
channel |
private int |
connectTimeoutMillis |
private static int |
DEFAULT_CONNECT_TIMEOUT |
private static MessageSizeEstimator |
DEFAULT_MSG_SIZE_ESTIMATOR |
private static RecvByteBufAllocator |
DEFAULT_RCVBUF_ALLOCATOR |
private int |
maxMessagesPerRead |
private MessageSizeEstimator |
msgSizeEstimator |
private boolean |
pinEventExecutor |
private RecvByteBufAllocator |
rcvBufAllocator |
private int |
writeBufferHighWaterMark |
private int |
writeBufferLowWaterMark |
private int |
writeSpinCount |
Constructor and Description |
---|
DefaultChannelConfig(Channel channel) |
Modifier and Type | Method and Description |
---|---|
protected void |
autoReadCleared()
|
ByteBufAllocator |
getAllocator()
Returns
ByteBufAllocator which is used for the channel
to allocate buffers. |
int |
getConnectTimeoutMillis()
Returns the connect timeout of the channel in milliseconds.
|
int |
getMaxMessagesPerRead()
Returns the maximum number of messages to read per read loop.
|
MessageSizeEstimator |
getMessageSizeEstimator()
Returns
MessageSizeEstimator which is used for the channel
to detect the size of a message. |
<T> T |
getOption(ChannelOption<T> option)
Return the value of the given
ChannelOption |
java.util.Map<ChannelOption<?>,java.lang.Object> |
getOptions()
Return all set
ChannelOption 's. |
protected java.util.Map<ChannelOption<?>,java.lang.Object> |
getOptions(java.util.Map<ChannelOption<?>,java.lang.Object> result,
ChannelOption<?>... options) |
private boolean |
getPinEventExecutorPerGroup() |
RecvByteBufAllocator |
getRecvByteBufAllocator()
Returns
RecvByteBufAllocator which is used for the channel
to allocate receive buffers. |
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 |
isAutoClose() |
boolean |
isAutoRead()
Returns
true if and only if ChannelHandlerContext.read() will be invoked automatically so that
a user application doesn't need to call it at all. |
ChannelConfig |
setAllocator(ByteBufAllocator allocator)
Set the
ByteBufAllocator which is used for the channel
to allocate buffers. |
ChannelConfig |
setAutoClose(boolean autoClose) |
ChannelConfig |
setAutoRead(boolean autoRead)
Sets if
ChannelHandlerContext.read() will be invoked automatically so that a user application doesn't
need to call it at all. |
ChannelConfig |
setConnectTimeoutMillis(int connectTimeoutMillis)
Sets the connect timeout of the channel in milliseconds.
|
ChannelConfig |
setMaxMessagesPerRead(int maxMessagesPerRead)
Sets the maximum number of messages to read per read loop.
|
ChannelConfig |
setMessageSizeEstimator(MessageSizeEstimator estimator)
Set the
MessageSizeEstimator which is used for the channel
to detect the size of a message. |
<T> boolean |
setOption(ChannelOption<T> option,
T value)
Sets a configuration property with the specified name and value.
|
boolean |
setOptions(java.util.Map<ChannelOption<?>,?> options)
Sets the configuration properties from the specified
Map . |
private ChannelConfig |
setPinEventExecutorPerGroup(boolean pinEventExecutor) |
ChannelConfig |
setRecvByteBufAllocator(RecvByteBufAllocator allocator)
Set the
ByteBufAllocator which is used for the channel
to allocate receive buffers. |
ChannelConfig |
setWriteBufferHighWaterMark(int writeBufferHighWaterMark)
Sets the high water mark of the write buffer.
|
ChannelConfig |
setWriteBufferLowWaterMark(int writeBufferLowWaterMark)
Sets the low water mark of the write buffer.
|
ChannelConfig |
setWriteSpinCount(int writeSpinCount)
Sets the maximum loop count for a write operation until
WritableByteChannel.write(ByteBuffer) returns a non-zero value. |
protected <T> void |
validate(ChannelOption<T> option,
T value) |
private static final RecvByteBufAllocator DEFAULT_RCVBUF_ALLOCATOR
private static final MessageSizeEstimator DEFAULT_MSG_SIZE_ESTIMATOR
private static final int DEFAULT_CONNECT_TIMEOUT
private static final java.util.concurrent.atomic.AtomicIntegerFieldUpdater<DefaultChannelConfig> AUTOREAD_UPDATER
protected final Channel channel
private volatile ByteBufAllocator allocator
private volatile RecvByteBufAllocator rcvBufAllocator
private volatile MessageSizeEstimator msgSizeEstimator
private volatile int connectTimeoutMillis
private volatile int maxMessagesPerRead
private volatile int writeSpinCount
private volatile int autoRead
private volatile boolean autoClose
private volatile int writeBufferHighWaterMark
private volatile int writeBufferLowWaterMark
private volatile boolean pinEventExecutor
public DefaultChannelConfig(Channel channel)
public java.util.Map<ChannelOption<?>,java.lang.Object> getOptions()
ChannelConfig
ChannelOption
's.getOptions
in interface ChannelConfig
protected java.util.Map<ChannelOption<?>,java.lang.Object> getOptions(java.util.Map<ChannelOption<?>,java.lang.Object> result, ChannelOption<?>... options)
public boolean setOptions(java.util.Map<ChannelOption<?>,?> options)
ChannelConfig
Map
.setOptions
in interface ChannelConfig
public <T> T getOption(ChannelOption<T> option)
ChannelConfig
ChannelOption
getOption
in interface ChannelConfig
public <T> boolean setOption(ChannelOption<T> option, T value)
ChannelConfig
public boolean setOption(ChannelOption<T> option, T value) { if (super.setOption(option, value)) { return true; } if (option.equals(additionalOption)) { .... return true; } return false; }
setOption
in interface ChannelConfig
true
if and only if the property has been setprotected <T> void validate(ChannelOption<T> option, T value)
public int getConnectTimeoutMillis()
ChannelConfig
Channel
does not support connect operation, this property is not
used at all, and therefore will be ignored.getConnectTimeoutMillis
in interface ChannelConfig
0
if disabled.public ChannelConfig setConnectTimeoutMillis(int connectTimeoutMillis)
ChannelConfig
Channel
does not support connect operation, this property is not
used at all, and therefore will be ignored.setConnectTimeoutMillis
in interface ChannelConfig
connectTimeoutMillis
- the connect timeout in milliseconds.
0
to disable.public int getMaxMessagesPerRead()
ChannelConfig
channelRead()
event.
If this value is greater than 1, an event loop might attempt to read multiple times to procure multiple messages.getMaxMessagesPerRead
in interface ChannelConfig
public ChannelConfig setMaxMessagesPerRead(int maxMessagesPerRead)
ChannelConfig
setMaxMessagesPerRead
in interface ChannelConfig
public int getWriteSpinCount()
ChannelConfig
WritableByteChannel.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 ChannelConfig
public ChannelConfig setWriteSpinCount(int writeSpinCount)
ChannelConfig
WritableByteChannel.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 ChannelConfig
public ByteBufAllocator getAllocator()
ChannelConfig
ByteBufAllocator
which is used for the channel
to allocate buffers.getAllocator
in interface ChannelConfig
public ChannelConfig setAllocator(ByteBufAllocator allocator)
ChannelConfig
ByteBufAllocator
which is used for the channel
to allocate buffers.setAllocator
in interface ChannelConfig
public RecvByteBufAllocator getRecvByteBufAllocator()
ChannelConfig
RecvByteBufAllocator
which is used for the channel
to allocate receive buffers.getRecvByteBufAllocator
in interface ChannelConfig
public ChannelConfig setRecvByteBufAllocator(RecvByteBufAllocator allocator)
ChannelConfig
ByteBufAllocator
which is used for the channel
to allocate receive buffers.setRecvByteBufAllocator
in interface ChannelConfig
public boolean isAutoRead()
ChannelConfig
true
if and only if ChannelHandlerContext.read()
will be invoked automatically so that
a user application doesn't need to call it at all. The default value is true
.isAutoRead
in interface ChannelConfig
public ChannelConfig setAutoRead(boolean autoRead)
ChannelConfig
ChannelHandlerContext.read()
will be invoked automatically so that a user application doesn't
need to call it at all. The default value is true
.setAutoRead
in interface ChannelConfig
protected void autoReadCleared()
public boolean isAutoClose()
isAutoClose
in interface ChannelConfig
public ChannelConfig setAutoClose(boolean autoClose)
setAutoClose
in interface ChannelConfig
public int getWriteBufferHighWaterMark()
ChannelConfig
Channel.isWritable()
will start to return false
.getWriteBufferHighWaterMark
in interface ChannelConfig
public ChannelConfig setWriteBufferHighWaterMark(int writeBufferHighWaterMark)
ChannelConfig
Channel.isWritable()
will start to return false
.setWriteBufferHighWaterMark
in interface ChannelConfig
public int getWriteBufferLowWaterMark()
ChannelConfig
Channel.isWritable()
will start to return
true
again.getWriteBufferLowWaterMark
in interface ChannelConfig
public ChannelConfig setWriteBufferLowWaterMark(int writeBufferLowWaterMark)
ChannelConfig
Channel.isWritable()
will start to return
true
again.setWriteBufferLowWaterMark
in interface ChannelConfig
public MessageSizeEstimator getMessageSizeEstimator()
ChannelConfig
MessageSizeEstimator
which is used for the channel
to detect the size of a message.getMessageSizeEstimator
in interface ChannelConfig
public ChannelConfig setMessageSizeEstimator(MessageSizeEstimator estimator)
ChannelConfig
MessageSizeEstimator
which is used for the channel
to detect the size of a message.setMessageSizeEstimator
in interface ChannelConfig
private ChannelConfig setPinEventExecutorPerGroup(boolean pinEventExecutor)
private boolean getPinEventExecutorPerGroup()