netty-all-4.1.29.Final.jar
登录
|
io.netty:netty-all:4.1.29.Final
io
netty
internal
example
buffer
bootstrap
util
handler
channel
ConnectTimeoutException.java
nio
FailedChannelFuture.java
ChannelHandlerContext.java
RecvByteBufAllocator.java
DefaultMaxMessagesRecvByteBufAllocator.java
pool
ChannelProgressiveFuture.java
DefaultChannelId.java
package-info.java
MaxBytesRecvByteBufAllocator.java
udt
ChannelProgressiveFutureListener.java
ChannelInitializer.java
SelectStrategy.java
internal
AdaptiveRecvByteBufAllocator.java
ChannelInboundHandlerAdapter.java
CombinedChannelDuplexHandler.java
DefaultFileRegion.java
ChannelFutureListener.java
AbstractChannelHandlerContext.java
SelectStrategyFactory.java
ChannelException.java
ReflectiveChannelFactory.java
DefaultEventLoop.java
AbstractServerChannel.java
PendingWriteQueue.java
ChannelOutboundHandlerAdapter.java
ChannelHandler.java
oio
DefaultChannelPromise.java
ChannelPipelineException.java
MaxMessagesRecvByteBufAllocator.java
unix
epoll
ChannelPipeline.java
ChannelOption.java
ChannelOutboundInvoker.java
ChannelOutboundBuffer.java
AbstractEventLoop.java
ChannelConfig.java
EventLoopException.java
CompleteChannelFuture.java
SimpleUserEventChannelHandler.java
PreferHeapByteBufAllocator.java
DefaultChannelProgressivePromise.java
EventLoop.java
ServerChannel.java
ThreadPerChannelEventLoopGroup.java
SingleThreadEventLoop.java
ChannelPromiseNotifier.java
DefaultSelectStrategy.java
DefaultChannelConfig.java
SimpleChannelInboundHandler.java
embedded
DefaultChannelHandlerContext.java
DefaultMaxBytesRecvByteBufAllocator.java
ChannelDuplexHandler.java
DelegatingChannelPromiseNotifier.java
kqueue
AddressedEnvelope.java
AbstractChannel.java
group
FixedRecvByteBufAllocator.java
ThreadPerChannelEventLoop.java
WriteBufferWaterMark.java
VoidChannelPromise.java
ChannelFlushPromiseNotifier.java
ChannelId.java
SucceededChannelFuture.java
DefaultEventLoopGroup.java
PendingBytesTracker.java
ChannelInboundInvoker.java
ChannelFuture.java
ChannelPromise.java
DefaultMessageSizeEstimator.java
ChannelProgressivePromise.java
DefaultChannelPipeline.java
FileRegion.java
DefaultAddressedEnvelope.java
CoalescingBufferQueue.java
MultithreadEventLoopGroup.java
ChannelFactory.java
AbstractEventLoopGroup.java
AbstractCoalescingBufferQueue.java
MessageSizeEstimator.java
EventLoopGroup.java
socket
nio
package-info.java
NioDatagramChannel.java
NioSocketChannel.java
NioDatagramChannelConfig.java
ProtocolFamilyConverter.java
NioChannelOption.java
NioServerSocketChannel.java
package-info.java
SocketChannel.java
InternetProtocolFamily.java
oio
ChannelOutputShutdownException.java
DatagramChannel.java
ChannelInputShutdownReadComplete.java
ChannelInputShutdownEvent.java
DatagramChannelConfig.java
SocketChannelConfig.java
DatagramPacket.java
DefaultSocketChannelConfig.java
ServerSocketChannelConfig.java
ChannelOutputShutdownEvent.java
DefaultDatagramChannelConfig.java
ServerSocketChannel.java
DefaultServerSocketChannelConfig.java
DuplexChannel.java
Channel.java
DefaultSelectStrategyFactory.java
sctp
ChannelMetadata.java
ChannelPromiseAggregator.java
ChannelHandlerAdapter.java
ChannelOutboundHandler.java
local
ChannelInboundHandler.java
rxtx
resolver
META-INF
NioChannelOption.java
清空
类结构
/* * Copyright 2018 The Netty Project * * The Netty Project licenses this file to you under the Apache License, * version 2.0 (the "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at: * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the * License for the specific language governing permissions and limitations * under the License. */ package io.netty.channel.socket.nio; import io.netty.channel.
ChannelException
; import io.netty.channel.
ChannelOption
; import java.io.
IOException
; import java.nio.channels.
Channel
; import java.nio.channels.
ServerSocketChannel
; import java.util.
ArrayList
; import java.util.
List
; import java.util.
Set
; /** * Provides {@link ChannelOption} over a given {@link java.net.SocketOption} which is then passed through the underlying * {@link java.nio.channels.NetworkChannel}. */ public final class
NioChannelOption
<T> extends
ChannelOption
<T> { private final java.net.
SocketOption
<T>
option
; @
SuppressWarnings
("deprecation") private
NioChannelOption
(java.net.
SocketOption
<T>
option
) { super(
option
.
name
()); this.
option
=
option
; } /** * Returns a {@link ChannelOption} for the given {@link java.net.SocketOption}. */ public static <T>
ChannelOption
<T>
of
(java.net.
SocketOption
<T>
option
) { return new
NioChannelOption
<T>(
option
); } // It's important to not use java.nio.channels.NetworkChannel as otherwise the classes that sometimes call this // method may not be used on Java 6, as method linking can happen eagerly even if this method was not actually // called at runtime. // // See https://github.com/netty/netty/issues/8166 // Internal helper methods to remove code duplication between Nio*Channel implementations. static <T> boolean
setOption
(
Channel
jdkChannel
,
NioChannelOption
<T>
option
, T
value
) { java.nio.channels.
NetworkChannel
channel
= (java.nio.channels.
NetworkChannel
)
jdkChannel
; if (!
channel
.
supportedOptions
().
contains
(
option
.
option
)) { return false; } if (
channel
instanceof
ServerSocketChannel
&&
option
.
option
== java.net.
StandardSocketOptions
.
IP_TOS
) { // Skip IP_TOS as a workaround for a JDK bug: // See http://mail.openjdk.java.net/pipermail/nio-dev/2018-August/005365.html return false; } try {
channel
.
setOption
(
option
.
option
,
value
); return true; } catch (
IOException
e
) { throw new
ChannelException
(
e
); } } static <T> T
getOption
(
Channel
jdkChannel
,
NioChannelOption
<T>
option
) { java.nio.channels.
NetworkChannel
channel
= (java.nio.channels.
NetworkChannel
)
jdkChannel
; if (!
channel
.
supportedOptions
().
contains
(
option
.
option
)) { return null; } if (
channel
instanceof
ServerSocketChannel
&&
option
.
option
== java.net.
StandardSocketOptions
.
IP_TOS
) { // Skip IP_TOS as a workaround for a JDK bug: // See http://mail.openjdk.java.net/pipermail/nio-dev/2018-August/005365.html return null; } try { return
channel
.
getOption
(
option
.
option
); } catch (
IOException
e
) { throw new
ChannelException
(
e
); } } @
SuppressWarnings
("unchecked") static
ChannelOption
[]
getOptions
(
Channel
jdkChannel
) { java.nio.channels.
NetworkChannel
channel
= (java.nio.channels.
NetworkChannel
)
jdkChannel
;
Set
<java.net.
SocketOption
<?>>
supportedOpts
=
channel
.
supportedOptions
(); if (
channel
instanceof
ServerSocketChannel
) {
List
<
ChannelOption
<?>>
extraOpts
= new
ArrayList
<
ChannelOption
<?>>(
supportedOpts
.
size
()); for (java.net.
SocketOption
<?>
opt
:
supportedOpts
) { if (
opt
== java.net.
StandardSocketOptions
.
IP_TOS
) { // Skip IP_TOS as a workaround for a JDK bug: // See http://mail.openjdk.java.net/pipermail/nio-dev/2018-August/005365.html continue; }
extraOpts
.
add
(new
NioChannelOption
(
opt
)); } return
extraOpts
.
toArray
(new
ChannelOption
[0]); } else {
ChannelOption
<?>[]
extraOpts
= new
ChannelOption
[
supportedOpts
.
size
()]; int
i
= 0; for (java.net.
SocketOption
<?>
opt
:
supportedOpts
) {
extraOpts
[
i
++] = new
NioChannelOption
(
opt
); } return
extraOpts
; } } }
查找资源
Jre/Lib
输入类名或文件名
类结构窗口