public class EmbeddedChannel extends AbstractChannel
Channel
实现的基类。
AbstractChannel.AbstractUnsafe
Channel.Unsafe
Constructor and Description |
---|
EmbeddedChannel()
用
EmbeddedChannelId 和一个空管道创建一个新实例。
|
EmbeddedChannel(boolean register, boolean hasDisconnect, ChannelHandler... handlers)
使用指定的处理程序初始化管道创建一个新实例。
|
EmbeddedChannel(boolean hasDisconnect, ChannelHandler... handlers)
使用指定的处理程序初始化管道创建一个新实例。
|
EmbeddedChannel(ChannelHandler... handlers)
使用指定的处理程序初始化管道创建一个新实例。
|
EmbeddedChannel(ChannelId channelId)
使用指定的ID和空管道创建一个新实例。
|
EmbeddedChannel(ChannelId channelId, boolean register, boolean hasDisconnect, ChannelHandler... handlers)
创建一个新的实例,将通道ID设置为给定ID,并使用指定的处理程序初始化管道。
|
EmbeddedChannel(ChannelId channelId, boolean hasDisconnect, ChannelConfig config, ChannelHandler... handlers)
创建一个新的实例,将通道ID设置为给定ID,并使用指定的处理程序初始化管道。
|
EmbeddedChannel(ChannelId channelId, boolean hasDisconnect, ChannelHandler... handlers)
创建一个新的实例,将通道ID设置为给定ID,并使用指定的处理程序初始化管道。
|
EmbeddedChannel(ChannelId channelId, ChannelHandler... handlers)
创建一个新的实例,将通道ID设置为给定ID,并使用指定的处理程序初始化管道。
|
Modifier and Type | Method and Description |
---|---|
void |
checkException()
检查是否收到任何
Throwable ,如果是这样重新抛出它。
|
ChannelFuture |
close()
请求关闭 Channel ,并在操作完成后通知ChannelFuture ,无论是因为操作成功还是由于错误。
|
ChannelFuture |
close(ChannelPromise promise)
请求关闭 Channel ,并在操作完成后通知ChannelFuture ,无论是因为操作成功还是由于错误。
|
ChannelConfig |
config()
返回此频道的配置。
|
ChannelFuture |
disconnect()
请求从远程对等方断开连接,并在操作完成后通知 ChannelFuture ,因为操作成功或错误。
|
ChannelFuture |
disconnect(ChannelPromise promise)
请求从远程对等方断开连接,并在操作完成后通知 ChannelFuture ,无论是因为操作成功还是由于错误。
|
protected void |
doBeginRead()
安排读取操作。
|
protected void |
doBind(java.net.SocketAddress localAddress)
将 Channel 绑定到SocketAddress
|
protected void |
doClose()
关闭 Channel
|
protected void |
doDisconnect()
将此 Channel 从其远程对等方断开
|
protected void |
doRegister()
|
protected void |
doWrite(ChannelOutboundBuffer in)
将给定缓冲区的内容刷新到远程对等体。
|
protected void |
ensureOpen()
确保 Channel 已打开,并且不会抛出异常。
|
boolean |
finish()
将此 Channel 标记为完成。
|
boolean |
finishAndReleaseAll()
将此 Channel 标记为已完成,并释放入站和出站缓冲区中的所有待处理消息。
|
EmbeddedChannel |
flushInbound()
刷新此 Channel 的入站。
|
EmbeddedChannel |
flushOutbound()
刷新此 Channel 的出站。
|
protected void |
handleInboundMessage(java.lang.Object msg)
针对每个入站消息进行调用。
|
protected void |
handleOutboundMessage(java.lang.Object msg)
针对每个出站消息进行调用。
|
java.util.Queue<java.lang.Object> |
inboundMessages()
返回 Queue ,其中包含Object 收到的所有Object 。
|
boolean |
isActive()
如果 Channel 处于活动状态且已连接,则返回true 。
|
protected boolean |
isCompatible(EventLoop loop)
如果给定的 EventLoop 与此实例兼容,则返回true 。
|
boolean |
isOpen()
如果 Channel 已打开并且稍后可能会激活,则返回true
|
java.util.Queue<java.lang.Object> |
lastInboundBuffer()
已过时。
|
java.util.Queue<java.lang.Object> |
lastOutboundBuffer()
已过时。
|
protected java.net.SocketAddress |
localAddress0()
返回本地绑定的
SocketAddress 。
|
ChannelMetadata |
metadata()
返回 ChannelMetadata 的的Channel 其描述的性质Channel 。
|
protected DefaultChannelPipeline |
newChannelPipeline()
返回一个新的 DefaultChannelPipeline 实例。
|
protected AbstractChannel.AbstractUnsafe |
newUnsafe()
创建一个新的 AbstractChannel.AbstractUnsafe 实例,该实例将用于Channel 的生命周期
|
java.util.Queue<java.lang.Object> |
outboundMessages()
返回 Queue ,其中包含由Object 编写的所有Object 。
|
<T> T |
readInbound()
返回从 Channel 收到的数据
|
<T> T |
readOutbound()
从出站读取数据。
|
void |
register()
在 Channel 上注册这个Channel 。
|
boolean |
releaseInbound()
释放所有缓存入站邮件,并返回
true 如果任何人的入缓冲区,
false 其他。
|
boolean |
releaseOutbound()
释放所有缓冲出站消息,并返回
true 如果任何人在出站缓冲,
false 其他。
|
protected java.net.SocketAddress |
remoteAddress0()
返回 SocketAddress 其中Channel 被连接到。
|
void |
runPendingTasks()
|
long |
runScheduledPendingTasks()
在 EventLoop 中为Channel 运行所有待处理的计划任务,并在下一个计划任务准备好运行时返回nanoseconds 。
|
Channel.Unsafe |
unsafe()
返回提供不安全操作
的仅供内部使用的对象。
|
boolean |
writeInbound(java.lang.Object... msgs)
将消息写入此 Channel 的入站。
|
ChannelFuture |
writeOneInbound(java.lang.Object msg)
向此 Channel 的入站写入一条消息,但不刷新它。
|
ChannelFuture |
writeOneInbound(java.lang.Object msg, ChannelPromise promise)
向此 Channel 的入站写入一条消息,但不刷新它。
|
ChannelFuture |
writeOneOutbound(java.lang.Object msg)
向此 Channel 的出站端写入一条消息,但不会刷新它。
|
ChannelFuture |
writeOneOutbound(java.lang.Object msg, ChannelPromise promise)
向此 Channel 的出站端写入一条消息,但不刷新它。
|
boolean |
writeOutbound(java.lang.Object... msgs)
将消息写入此 Channel 的出站。
|
alloc, bind, bind, bytesBeforeUnwritable, bytesBeforeWritable, closeFuture, compareTo, connect, connect, connect, connect, deregister, deregister, doDeregister, doShutdownOutput, equals, eventLoop, filterOutboundMessage, flush, hashCode, id, invalidateLocalAddress, invalidateRemoteAddress, isRegistered, isWritable, localAddress, newFailedFuture, newId, newProgressivePromise, newPromise, newSucceededFuture, parent, pipeline, read, remoteAddress, toString, voidPromise, write, write, writeAndFlush, writeAndFlush
attr, hasAttr
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
attr, hasAttr
public EmbeddedChannel()
EmbeddedChannelId
和一个空管道创建一个新实例。
public EmbeddedChannel(ChannelId channelId)
channelId
- 将用于识别此频道的ChannelId
public EmbeddedChannel(ChannelHandler... handlers)
handlers
- 将在ChannelPipeline
中添加的ChannelHandler
public EmbeddedChannel(boolean hasDisconnect, ChannelHandler... handlers)
hasDisconnect
- false
,如果这Channel
将委托disconnect()
至close()
, false
其他。
handlers
- 将在ChannelPipeline
中添加的ChannelHandler
public EmbeddedChannel(boolean register, boolean hasDisconnect, ChannelHandler... handlers)
register
- true
如果此Channel
已在构造函数中注册到EventLoop
。
如果false
用户需要拨打register()
。
hasDisconnect
- false
,如果这Channel
将委托disconnect()
至close()
, false
其他。
handlers
- 将在ChannelPipeline
中添加的ChannelHandler
public EmbeddedChannel(ChannelId channelId, ChannelHandler... handlers)
channelId
- 将用于识别此频道的ChannelId
handlers
- 将在ChannelPipeline
中添加的ChannelHandler
public EmbeddedChannel(ChannelId channelId, boolean hasDisconnect, ChannelHandler... handlers)
channelId
- 将用于识别此频道的ChannelId
hasDisconnect
- false
如果这Channel
将委托disconnect()
close()
,否则false
。
handlers
- 将在ChannelPipeline
中添加的ChannelHandler
public EmbeddedChannel(ChannelId channelId, boolean register, boolean hasDisconnect, ChannelHandler... handlers)
channelId
- 将用于识别此频道的ChannelId
register
- true
如果此Channel
已在构造函数中注册到EventLoop
。
如果false
用户需要拨打register()
。
hasDisconnect
- false
,如果这Channel
将委托disconnect()
至close()
, false
其他。
handlers
- 将在ChannelPipeline
中添加的ChannelHandler
public EmbeddedChannel(ChannelId channelId, boolean hasDisconnect, ChannelConfig config, ChannelHandler... handlers)
channelId
- 将用于识别此频道的ChannelId
hasDisconnect
- false
,如果这Channel
将委托disconnect()
至close()
, false
其他。
config
- 将由config()
返回的ChannelConfig
。
handlers
- 将在ChannelPipeline
中添加的ChannelHandler
public void register() throws java.lang.Exception
Channel
上注册这个Channel 。
java.lang.Exception
protected final DefaultChannelPipeline newChannelPipeline()
AbstractChannel
DefaultChannelPipeline
实例。
public ChannelMetadata metadata()
Channel
复制的描述
ChannelMetadata
的的Channel
其描述的性质Channel
。
public ChannelConfig config()
Channel
复制的描述
public java.util.Queue<java.lang.Object> inboundMessages()
Queue
,其中包含Object
收到的所有Object 。
@Deprecated public java.util.Queue<java.lang.Object> lastInboundBuffer()
inboundMessages()
public java.util.Queue<java.lang.Object> outboundMessages()
Queue
,它包含由Object
编写的所有Object 。
@Deprecated public java.util.Queue<java.lang.Object> lastOutboundBuffer()
outboundMessages()
public <T> T readInbound()
Channel
收到的数据
public <T> T readOutbound()
null
读取,则可能会返回null
。
public boolean writeInbound(java.lang.Object... msgs)
Channel
的入站。
msgs
- 要写入的消息
true
如果写入操作确实向入站缓冲区添加了某些内容
public ChannelFuture writeOneInbound(java.lang.Object msg)
Channel
的入站写入一条消息,但不刷新它。
该方法在概念上等同于AbstractChannel.write(Object)
。
writeOneOutbound(Object)
public ChannelFuture writeOneInbound(java.lang.Object msg, ChannelPromise promise)
Channel
的入站写入一条消息,但不刷新它。
该方法在概念上等同于AbstractChannel.write(Object, ChannelPromise)
。
public EmbeddedChannel flushInbound()
Channel
的入站。
该方法在概念上等同于AbstractChannel.flush()
。
flushOutbound()
public boolean writeOutbound(java.lang.Object... msgs)
Channel
的出站。
msgs
- 要写入的消息
true
public ChannelFuture writeOneOutbound(java.lang.Object msg)
Channel
的出站端写入一条消息,但不刷新它。
该方法在概念上等同于AbstractChannel.write(Object)
。
writeOneInbound(Object)
public ChannelFuture writeOneOutbound(java.lang.Object msg, ChannelPromise promise)
Channel
的出站端写入一条消息,但不刷新它。
该方法在概念上等同于AbstractChannel.write(Object, ChannelPromise)
。
public EmbeddedChannel flushOutbound()
Channel
的出站。
该方法在概念上等同于AbstractChannel.flush()
。
flushInbound()
public boolean finish()
Channel
标记为完成。
进一步尝试写入数据将失败。
true
则bufferReadable返回
true
public boolean finishAndReleaseAll()
Channel
标记为已完成,并释放入站和出站缓冲区中的所有待处理消息。
进一步尝试写入数据将失败。
true
则bufferReadable返回
true
public boolean releaseInbound()
true
如果任何人的入缓冲区,
false
其他。
public boolean releaseOutbound()
true
如果任何人在出站缓冲,
false
其他。
public final ChannelFuture close()
ChannelOutboundInvoker
Channel
并通知ChannelFuture
,无论是因为操作成功还是由于错误。
关闭后不可能再次使用它。
这将导致在具有ChannelOutboundHandler.close(ChannelHandlerContext, ChannelPromise)
方法称为下一个的ChannelOutboundHandler
包含在ChannelPipeline
的的Channel
。
close
在界面
ChannelOutboundInvoker
close
上课
AbstractChannel
public final ChannelFuture disconnect()
ChannelOutboundInvoker
ChannelFuture
,无论是因为操作成功还是由于错误。
这将导致在具有ChannelOutboundHandler.disconnect(ChannelHandlerContext, ChannelPromise)
方法称为下一个的ChannelOutboundHandler
包含在ChannelPipeline
的的Channel
。
disconnect
在界面
ChannelOutboundInvoker
disconnect
在课堂上
AbstractChannel
public final ChannelFuture close(ChannelPromise promise)
ChannelOutboundInvoker
Channel
,并在操作完成后通知ChannelFuture
,无论是因为操作成功还是由于错误。
关闭后不可能再次使用它。
给定的ChannelPromise
将被通知。
这将导致在具有ChannelOutboundHandler.close(ChannelHandlerContext, ChannelPromise)
方法称为下一个的ChannelOutboundHandler
包含在ChannelPipeline
的的Channel
。
close
,界面
ChannelOutboundInvoker
close
在课堂上
AbstractChannel
public final ChannelFuture disconnect(ChannelPromise promise)
ChannelOutboundInvoker
ChannelFuture
,无论是因为操作成功还是由于错误。
给定的ChannelPromise
将被通知。
这将导致在具有ChannelOutboundHandler.disconnect(ChannelHandlerContext, ChannelPromise)
方法称为下一个的ChannelOutboundHandler
包含在ChannelPipeline
的的Channel
。
disconnect
在界面
ChannelOutboundInvoker
disconnect
在课堂上
AbstractChannel
public void runPendingTasks()
public long runScheduledPendingTasks()
public void checkException()
Throwable
收到,如果是这样重新抛出它。
protected final void ensureOpen()
Channel
已打开,并且不会抛出异常。
protected boolean isCompatible(EventLoop loop)
AbstractChannel
EventLoop
与此实例兼容,则返回true
。
isCompatible
,班级
AbstractChannel
protected java.net.SocketAddress localAddress0()
AbstractChannel
SocketAddress
。
localAddress0
在课堂上
AbstractChannel
protected java.net.SocketAddress remoteAddress0()
AbstractChannel
SocketAddress
其中Channel
被连接到。
remoteAddress0
class
AbstractChannel
protected void doRegister() throws java.lang.Exception
AbstractChannel
doRegister
在课堂
AbstractChannel
java.lang.Exception
protected void doBind(java.net.SocketAddress localAddress) throws java.lang.Exception
AbstractChannel
Channel
绑定到SocketAddress
doBind
在课堂
AbstractChannel
java.lang.Exception
protected void doDisconnect() throws java.lang.Exception
AbstractChannel
Channel
从其远程对等方断开
doDisconnect
在课堂上
AbstractChannel
java.lang.Exception
protected void doClose() throws java.lang.Exception
AbstractChannel
Channel
doClose
在课堂上
AbstractChannel
java.lang.Exception
protected void doBeginRead() throws java.lang.Exception
AbstractChannel
doBeginRead
类
AbstractChannel
java.lang.Exception
protected AbstractChannel.AbstractUnsafe newUnsafe()
AbstractChannel
AbstractChannel.AbstractUnsafe
实例,该实例将用于Channel
的生命周期
newUnsafe
在课堂上
AbstractChannel
public Channel.Unsafe unsafe()
Channel
unsafe
,界面
Channel
unsafe
在课堂上
AbstractChannel
protected void doWrite(ChannelOutboundBuffer in) throws java.lang.Exception
AbstractChannel
doWrite
在课堂上
AbstractChannel
java.lang.Exception
protected void handleOutboundMessage(java.lang.Object msg)
protected void handleInboundMessage(java.lang.Object msg)
Copyright © 2008–2018 The Netty Project. All rights reserved.