protected abstract class AbstractChannel.AbstractUnsafe extends Object implements Channel.Unsafe
Unsafe
implementation which sub-classes must extend and use.Modifier | Constructor and Description |
---|---|
protected |
AbstractUnsafe() |
Modifier and Type | Method and Description |
---|---|
protected Throwable |
annotateConnectException(Throwable cause,
SocketAddress remoteAddress)
Appends the remote address to the message of the exceptions caused by connection attempt failure.
|
void |
beginRead()
Schedules a read operation that fills the inbound buffer of the first
ChannelInboundHandler in the
ChannelPipeline . |
void |
bind(SocketAddress localAddress,
ChannelPromise promise)
|
void |
close(ChannelPromise promise)
Close the
Channel of the ChannelPromise and notify the ChannelPromise once the
operation was complete. |
void |
closeForcibly()
Closes the
Channel immediately without firing any events. |
protected void |
closeIfClosed() |
void |
deregister(ChannelPromise promise)
Deregister the
Channel of the ChannelPromise from EventLoop and notify the
ChannelPromise once the operation was complete. |
void |
disconnect(ChannelPromise promise)
Disconnect the
Channel of the ChannelFuture and notify the ChannelPromise once the
operation was complete. |
protected boolean |
ensureOpen(ChannelPromise promise)
Deprecated.
|
void |
flush()
Flush out all write operations scheduled via
Channel.Unsafe.write(Object, ChannelPromise) . |
protected void |
flush0() |
SocketAddress |
localAddress()
Return the
SocketAddress to which is bound local or
null if none. |
ChannelOutboundBuffer |
outboundBuffer()
Returns the
ChannelOutboundBuffer of the Channel where the pending write requests are stored. |
protected Executor |
prepareToClose()
Prepares to close the
Channel . |
RecvByteBufAllocator.Handle |
recvBufAllocHandle()
Return the assigned
RecvByteBufAllocator.Handle which will be used to allocate ByteBuf 's when
receiving data. |
void |
register(EventLoop eventLoop,
ChannelPromise promise)
Register the
Channel of the ChannelPromise and notify
the ChannelFuture once the registration was complete. |
SocketAddress |
remoteAddress()
Return the
SocketAddress to which is bound remote or
null if none is bound yet. |
protected void |
safeSetFailure(ChannelPromise promise,
Throwable cause)
Marks the specified
promise as failure. |
protected void |
safeSetSuccess(ChannelPromise promise)
Marks the specified
promise as success. |
ChannelPromise |
voidPromise()
Return a special ChannelPromise which can be reused and passed to the operations in
Channel.Unsafe . |
void |
write(Object msg,
ChannelPromise promise)
Schedules a write operation.
|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
connect
public RecvByteBufAllocator.Handle recvBufAllocHandle()
Channel.Unsafe
RecvByteBufAllocator.Handle
which will be used to allocate ByteBuf
's when
receiving data.recvBufAllocHandle
in interface Channel.Unsafe
public final ChannelOutboundBuffer outboundBuffer()
Channel.Unsafe
ChannelOutboundBuffer
of the Channel
where the pending write requests are stored.outboundBuffer
in interface Channel.Unsafe
public final SocketAddress localAddress()
Channel.Unsafe
SocketAddress
to which is bound local or
null
if none.localAddress
in interface Channel.Unsafe
public final SocketAddress remoteAddress()
Channel.Unsafe
SocketAddress
to which is bound remote or
null
if none is bound yet.remoteAddress
in interface Channel.Unsafe
public final void register(EventLoop eventLoop, ChannelPromise promise)
Channel.Unsafe
Channel
of the ChannelPromise
and notify
the ChannelFuture
once the registration was complete.register
in interface Channel.Unsafe
public final void bind(SocketAddress localAddress, ChannelPromise promise)
Channel.Unsafe
bind
in interface Channel.Unsafe
public final void disconnect(ChannelPromise promise)
Channel.Unsafe
Channel
of the ChannelFuture
and notify the ChannelPromise
once the
operation was complete.disconnect
in interface Channel.Unsafe
public final void close(ChannelPromise promise)
Channel.Unsafe
Channel
of the ChannelPromise
and notify the ChannelPromise
once the
operation was complete.close
in interface Channel.Unsafe
public final void closeForcibly()
Channel.Unsafe
Channel
immediately without firing any events. Probably only useful
when registration attempt failed.closeForcibly
in interface Channel.Unsafe
public final void deregister(ChannelPromise promise)
Channel.Unsafe
Channel
of the ChannelPromise
from EventLoop
and notify the
ChannelPromise
once the operation was complete.deregister
in interface Channel.Unsafe
public final void beginRead()
Channel.Unsafe
ChannelInboundHandler
in the
ChannelPipeline
. If there's already a pending read operation, this method does nothing.beginRead
in interface Channel.Unsafe
public final void write(Object msg, ChannelPromise promise)
Channel.Unsafe
write
in interface Channel.Unsafe
public final void flush()
Channel.Unsafe
Channel.Unsafe.write(Object, ChannelPromise)
.flush
in interface Channel.Unsafe
protected void flush0()
public final ChannelPromise voidPromise()
Channel.Unsafe
Channel.Unsafe
.
It will never be notified of a success or error and so is only a placeholder for operations
that take a ChannelPromise
as argument but for which you not want to get notified.voidPromise
in interface Channel.Unsafe
@Deprecated protected final boolean ensureOpen(ChannelPromise promise)
protected final void safeSetSuccess(ChannelPromise promise)
promise
as success. If the promise
is done already, log a message.protected final void safeSetFailure(ChannelPromise promise, Throwable cause)
promise
as failure. If the promise
is done already, log a message.protected final void closeIfClosed()
protected final Throwable annotateConnectException(Throwable cause, SocketAddress remoteAddress)
protected Executor prepareToClose()
Channel
. If this method returns an Executor
, the
caller must call the Executor.execute(Runnable)
method with a task that calls
AbstractChannel.doClose()
on the returned Executor
. If this method returns null
,
AbstractChannel.doClose()
must be called from the caller thread. (i.e. EventLoop
)Copyright © 2008–2017 The Netty Project. All rights reserved.