Package io.netty.channel.epoll
Class AbstractEpollServerChannel
- java.lang.Object
-
- io.netty.util.DefaultAttributeMap
-
- io.netty.channel.AbstractChannel
-
- io.netty.channel.epoll.AbstractEpollServerChannel
-
- All Implemented Interfaces:
Channel
,ChannelOutboundInvoker
,ServerChannel
,UnixChannel
,AttributeMap
,java.lang.Comparable<Channel>
- Direct Known Subclasses:
EpollServerDomainSocketChannel
,EpollServerSocketChannel
public abstract class AbstractEpollServerChannel extends AbstractChannel implements ServerChannel
-
-
Nested Class Summary
-
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 boolean
active
protected LinuxSocket
socket
-
Constructor Summary
Constructors Modifier Constructor Description protected
AbstractEpollServerChannel(int fd)
protected
AbstractEpollServerChannel(LinuxSocket fd)
protected
AbstractEpollServerChannel(LinuxSocket fd, boolean active)
-
Method Summary
All Methods Static Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description protected static void
checkResolvable(java.net.InetSocketAddress addr)
abstract EpollChannelConfig
config()
Returns the configuration of this channel.protected void
doBeginRead()
Schedule a read operation.protected void
doBind(java.net.SocketAddress local)
Bind theChannel
to theSocketAddress
protected void
doClose()
Close theChannel
protected boolean
doConnect(java.net.SocketAddress remoteAddress, java.net.SocketAddress localAddress)
Connect to the remote peerprotected void
doDeregister()
protected void
doDisconnect()
Disconnect thisChannel
from its remote peerprotected int
doReadBytes(ByteBuf byteBuf)
Read bytes into the givenByteBuf
and return the amount.protected void
doRegister(ChannelPromise promise)
protected void
doWrite(ChannelOutboundBuffer in)
Flush the content of the given buffer to the remote peer.protected int
doWriteBytes(ChannelOutboundBuffer in, ByteBuf buf)
FileDescriptor
fd()
Returns theFileDescriptor
that is used by thisChannel
.protected java.lang.Object
filterOutboundMessage(java.lang.Object msg)
Invoked when a new message is added to aChannelOutboundBuffer
of thisAbstractChannel
, so that theChannel
implementation converts the message to another.boolean
isActive()
Returntrue
if theChannel
is active and so connected.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 java.net.SocketAddress
localAddress0()
Returns theSocketAddress
which is bound locally.ChannelMetadata
metadata()
protected abstract Channel
newChildChannel(int fd, byte[] remote, int offset, int len)
protected ByteBuf
newDirectBuffer(ByteBuf buf)
Returns an off-heap copy of the specifiedByteBuf
, and releases the original one.protected ByteBuf
newDirectBuffer(java.lang.Object holder, ByteBuf buf)
Returns an off-heap copy of the specifiedByteBuf
, and releases the specified holder.protected io.netty.channel.epoll.AbstractEpollChannel.AbstractEpollUnsafe
newUnsafe()
Create a newAbstractChannel.AbstractUnsafe
instance which will be used for the life-time of theChannel
protected IoRegistration
registration()
protected java.net.InetSocketAddress
remoteAddress0()
Return theSocketAddress
which theChannel
is connected to.protected void
setFlag(int flag)
-
Methods inherited from class io.netty.channel.AbstractChannel
closeFuture, compareTo, doRegister, doShutdownOutput, equals, eventLoop, hashCode, id, invalidateLocalAddress, invalidateRemoteAddress, isRegistered, localAddress, maxMessagesPerWrite, newChannelPipeline, newId, parent, pipeline, remoteAddress, toString, unsafe, validateFileRegion, voidPromise
-
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
-
Methods inherited from interface io.netty.channel.Channel
alloc, bind, bind, bytesBeforeUnwritable, bytesBeforeWritable, close, close, closeFuture, config, connect, connect, connect, connect, deregister, deregister, disconnect, disconnect, eventLoop, flush, getOption, id, isActive, isOpen, isRegistered, isWritable, localAddress, newFailedFuture, newProgressivePromise, newPromise, newSucceededFuture, parent, pipeline, read, remoteAddress, setOption, unsafe, voidPromise, write, write, writeAndFlush, writeAndFlush
-
-
-
-
Field Detail
-
socket
protected final LinuxSocket socket
-
active
protected volatile boolean active
-
-
Constructor Detail
-
AbstractEpollServerChannel
protected AbstractEpollServerChannel(int fd)
-
AbstractEpollServerChannel
protected AbstractEpollServerChannel(LinuxSocket fd)
-
AbstractEpollServerChannel
protected AbstractEpollServerChannel(LinuxSocket fd, boolean active)
-
-
Method Detail
-
metadata
public ChannelMetadata metadata()
Description copied from interface:Channel
-
remoteAddress0
protected java.net.InetSocketAddress remoteAddress0()
Description copied from class:AbstractChannel
Return theSocketAddress
which theChannel
is connected to.
-
newUnsafe
protected io.netty.channel.epoll.AbstractEpollChannel.AbstractEpollUnsafe newUnsafe()
Description copied from class:AbstractChannel
Create a newAbstractChannel.AbstractUnsafe
instance which will be used for the life-time of theChannel
-
doWrite
protected void doWrite(ChannelOutboundBuffer in) throws java.lang.Exception
Description copied from class:AbstractChannel
Flush the content of the given buffer to the remote peer.- Specified by:
doWrite
in classAbstractChannel
- Throws:
java.lang.Exception
-
filterOutboundMessage
protected java.lang.Object filterOutboundMessage(java.lang.Object msg) throws java.lang.Exception
Description copied from class:AbstractChannel
Invoked when a new message is added to aChannelOutboundBuffer
of thisAbstractChannel
, so that theChannel
implementation converts the message to another. (e.g. heap buffer -> direct buffer)- Overrides:
filterOutboundMessage
in classAbstractChannel
- Throws:
java.lang.Exception
-
newChildChannel
protected abstract Channel newChildChannel(int fd, byte[] remote, int offset, int len) throws java.lang.Exception
- Throws:
java.lang.Exception
-
doConnect
protected boolean doConnect(java.net.SocketAddress remoteAddress, java.net.SocketAddress localAddress) throws java.lang.Exception
Connect to the remote peer- Throws:
java.lang.Exception
-
setFlag
protected void setFlag(int flag) throws java.io.IOException
- Throws:
java.io.IOException
-
registration
protected final IoRegistration registration()
-
fd
public final FileDescriptor fd()
Description copied from interface:UnixChannel
Returns theFileDescriptor
that is used by thisChannel
.- Specified by:
fd
in interfaceUnixChannel
-
config
public abstract EpollChannelConfig config()
Description copied from interface:Channel
Returns the configuration of this channel.
-
isActive
public boolean isActive()
Description copied from interface:Channel
Returntrue
if theChannel
is active and so connected.
-
doClose
protected void doClose() throws java.lang.Exception
Description copied from class:AbstractChannel
Close theChannel
- Specified by:
doClose
in classAbstractChannel
- Throws:
java.lang.Exception
-
doDisconnect
protected void doDisconnect() throws java.lang.Exception
Description copied from class:AbstractChannel
Disconnect thisChannel
from its remote peer- Specified by:
doDisconnect
in classAbstractChannel
- Throws:
java.lang.Exception
-
isOpen
public boolean isOpen()
Description copied from interface:Channel
Returnstrue
if theChannel
is open and may get active later
-
doDeregister
protected void doDeregister() throws java.lang.Exception
Description copied from class:AbstractChannel
- Overrides:
doDeregister
in classAbstractChannel
- Throws:
java.lang.Exception
-
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
-
doBeginRead
protected void doBeginRead() throws java.lang.Exception
Description copied from class:AbstractChannel
Schedule a read operation.- Specified by:
doBeginRead
in classAbstractChannel
- Throws:
java.lang.Exception
-
doRegister
protected void doRegister(ChannelPromise promise)
Description copied from class:AbstractChannel
Is called after theChannel
is registered with itsEventLoop
as part of the register process. Subclasses may override this method- Overrides:
doRegister
in classAbstractChannel
- Parameters:
promise
-ChannelPromise
that must be notified once done to continue the registration.
-
newDirectBuffer
protected final ByteBuf newDirectBuffer(ByteBuf buf)
Returns an off-heap copy of the specifiedByteBuf
, and releases the original one.
-
checkResolvable
protected static void checkResolvable(java.net.InetSocketAddress addr)
-
doReadBytes
protected final int doReadBytes(ByteBuf byteBuf) throws java.lang.Exception
Read bytes into the givenByteBuf
and return the amount.- Throws:
java.lang.Exception
-
doWriteBytes
protected final int doWriteBytes(ChannelOutboundBuffer in, ByteBuf buf) throws java.lang.Exception
- Throws:
java.lang.Exception
-
doBind
protected void doBind(java.net.SocketAddress local) throws java.lang.Exception
Description copied from class:AbstractChannel
Bind theChannel
to theSocketAddress
- Specified by:
doBind
in classAbstractChannel
- Throws:
java.lang.Exception
-
localAddress0
protected java.net.SocketAddress localAddress0()
Description copied from class:AbstractChannel
Returns theSocketAddress
which is bound locally.- Specified by:
localAddress0
in classAbstractChannel
-
-