Package io.netty.channel.nio
Class AbstractNioChannel
- java.lang.Object
-
- io.netty.util.DefaultAttributeMap
-
- io.netty.channel.AbstractChannel
-
- io.netty.channel.nio.AbstractNioChannel
-
- All Implemented Interfaces:
Channel
,ChannelOutboundInvoker
,AttributeMap
,Comparable<Channel>
- Direct Known Subclasses:
AbstractNioByteChannel
,AbstractNioMessageChannel
public abstract class AbstractNioChannel extends AbstractChannel
Abstract base class forChannel
implementations which use a Selector based approach.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description protected class
AbstractNioChannel.AbstractNioUnsafe
static interface
AbstractNioChannel.NioUnsafe
SpecialChannel.Unsafe
sub-type which allows to access the underlyingSelectableChannel
-
Nested classes/interfaces inherited from class io.netty.channel.AbstractChannel
AbstractChannel.AbstractUnsafe
-
Nested classes/interfaces inherited from interface io.netty.channel.Channel
Channel.Unsafe
-
-
Field Summary
Fields Modifier and Type Field Description protected int
readInterestOp
-
Constructor Summary
Constructors Modifier Constructor Description protected
AbstractNioChannel(Channel parent, SelectableChannel ch, int readInterestOp)
Create a new instance
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Deprecated Methods Modifier and Type Method Description protected void
clearReadPending()
Set read pending tofalse
.protected void
doBeginRead()
Schedule a read operation.protected void
doClose()
Close theChannel
protected abstract boolean
doConnect(SocketAddress remoteAddress, SocketAddress localAddress)
Connect to the remote peerprotected void
doDeregister()
protected abstract void
doFinishConnect()
Finish the connectprotected void
doRegister()
NioEventLoop
eventLoop()
protected boolean
isCompatible(EventLoop loop)
Returntrue
if the givenEventLoop
is compatible with this instance.boolean
isOpen()
Returnstrue
if theChannel
is open and may get active laterprotected boolean
isReadPending()
Deprecated.No longer supported.protected SelectableChannel
javaChannel()
protected ByteBuf
newDirectBuffer(ByteBuf buf)
Returns an off-heap copy of the specifiedByteBuf
, and releases the original one.protected ByteBuf
newDirectBuffer(ReferenceCounted holder, ByteBuf buf)
Returns an off-heap copy of the specifiedByteBuf
, and releases the specified holder.protected SelectionKey
selectionKey()
Return the currentSelectionKey
protected void
setReadPending(boolean readPending)
Deprecated.UseclearReadPending()
if appropriate instead.AbstractNioChannel.NioUnsafe
unsafe()
Returns an internal-use-only object that provides unsafe operations.-
Methods inherited from class io.netty.channel.AbstractChannel
alloc, bind, bind, bytesBeforeUnwritable, bytesBeforeWritable, close, close, closeFuture, compareTo, connect, connect, connect, connect, deregister, deregister, disconnect, disconnect, doBind, doDisconnect, doShutdownOutput, doWrite, equals, filterOutboundMessage, flush, hashCode, id, invalidateLocalAddress, invalidateRemoteAddress, isRegistered, isWritable, localAddress, localAddress0, newChannelPipeline, newFailedFuture, newId, newProgressivePromise, newPromise, newSucceededFuture, newUnsafe, parent, pipeline, read, remoteAddress, remoteAddress0, toString, validateFileRegion, voidPromise, write, write, writeAndFlush, writeAndFlush
-
Methods inherited from class io.netty.util.DefaultAttributeMap
attr, hasAttr
-
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
-
Methods inherited from interface io.netty.util.AttributeMap
attr, hasAttr
-
-
-
-
Constructor Detail
-
AbstractNioChannel
protected AbstractNioChannel(Channel parent, SelectableChannel ch, int readInterestOp)
Create a new instance- Parameters:
parent
- the parentChannel
by which this instance was created. May benull
ch
- the underlyingSelectableChannel
on which it operatesreadInterestOp
- the ops to set to receive data from theSelectableChannel
-
-
Method Detail
-
isOpen
public boolean isOpen()
Description copied from interface:Channel
Returnstrue
if theChannel
is open and may get active later
-
unsafe
public AbstractNioChannel.NioUnsafe unsafe()
Description copied from interface:Channel
Returns an internal-use-only object that provides unsafe operations.- Specified by:
unsafe
in interfaceChannel
- Overrides:
unsafe
in classAbstractChannel
-
javaChannel
protected SelectableChannel javaChannel()
-
eventLoop
public NioEventLoop eventLoop()
Description copied from interface:Channel
- Specified by:
eventLoop
in interfaceChannel
- Overrides:
eventLoop
in classAbstractChannel
-
selectionKey
protected SelectionKey selectionKey()
Return the currentSelectionKey
-
isReadPending
@Deprecated protected boolean isReadPending()
Deprecated.No longer supported. No longer supported.
-
setReadPending
@Deprecated protected void setReadPending(boolean readPending)
Deprecated.UseclearReadPending()
if appropriate instead. No longer supported.
-
clearReadPending
protected final void clearReadPending()
Set read pending tofalse
.
-
isCompatible
protected boolean isCompatible(EventLoop loop)
Description copied from class:AbstractChannel
Returntrue
if the givenEventLoop
is compatible with this instance.- Specified by:
isCompatible
in classAbstractChannel
-
doRegister
protected void doRegister() throws Exception
Description copied from class:AbstractChannel
Is called after theChannel
is registered with itsEventLoop
as part of the register process. Sub-classes may override this method- Overrides:
doRegister
in classAbstractChannel
- Throws:
Exception
-
doDeregister
protected void doDeregister() throws Exception
Description copied from class:AbstractChannel
- Overrides:
doDeregister
in classAbstractChannel
- Throws:
Exception
-
doBeginRead
protected void doBeginRead() throws Exception
Description copied from class:AbstractChannel
Schedule a read operation.- Specified by:
doBeginRead
in classAbstractChannel
- Throws:
Exception
-
doConnect
protected abstract boolean doConnect(SocketAddress remoteAddress, SocketAddress localAddress) throws Exception
Connect to the remote peer- Throws:
Exception
-
doFinishConnect
protected abstract void doFinishConnect() throws Exception
Finish the connect- Throws:
Exception
-
newDirectBuffer
protected final ByteBuf newDirectBuffer(ReferenceCounted holder, ByteBuf buf)
Returns an off-heap copy of the specifiedByteBuf
, and releases the specified holder. The caller must ensure that the holder releases the originalByteBuf
when the holder is released by this method. Note that this method does not create an off-heap copy if the allocation / deallocation cost is too high, but just returns the originalByteBuf
..
-
doClose
protected void doClose() throws Exception
Description copied from class:AbstractChannel
Close theChannel
- Specified by:
doClose
in classAbstractChannel
- Throws:
Exception
-
-