Package io.netty.channel.local
Class LocalChannel
- java.lang.Object
-
- io.netty.util.DefaultAttributeMap
-
- io.netty.channel.AbstractChannel
-
- io.netty.channel.local.LocalChannel
-
- All Implemented Interfaces:
Channel,ChannelOutboundInvoker,AttributeMap,java.lang.Comparable<Channel>
public class LocalChannel extends AbstractChannel
AChannelfor the local transport.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description private classLocalChannel.LocalUnsafeprivate static classLocalChannel.State-
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 private ChannelConfigconfigprivate ChannelPromiseconnectPromiseprivate static java.util.concurrent.atomic.AtomicReferenceFieldUpdater<LocalChannel,Future>FINISH_READ_FUTURE_UPDATERprivate Future<?>finishReadFuture(package private) java.util.Queue<java.lang.Object>inboundBufferprivate LocalAddresslocalAddressprivate static InternalLoggerloggerprivate static intMAX_READER_STACK_DEPTHprivate static ChannelMetadataMETADATAprivate LocalChannelpeerprivate booleanreadInProgressprivate java.lang.RunnablereadTaskprivate LocalAddressremoteAddressprivate java.lang.RunnableshutdownHookprivate LocalChannel.Statestateprivate booleanwriteInProgress
-
Constructor Summary
Constructors Modifier Constructor Description LocalChannel()protectedLocalChannel(LocalServerChannel parent, LocalChannel peer)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description ChannelConfigconfig()Returns the configuration of this channel.protected voiddoBeginRead()Schedule a read operation.protected voiddoBind(java.net.SocketAddress localAddress)Bind theChannelto theSocketAddressprotected voiddoClose()Close theChannelprotected voiddoDeregister()protected voiddoDisconnect()Disconnect thisChannelfrom its remote peerprotected voiddoRegister()protected voiddoWrite(ChannelOutboundBuffer in)Flush the content of the given buffer to the remote peer.private voidfinishPeerRead(LocalChannel peer)private voidfinishPeerRead0(LocalChannel peer)booleanisActive()Returntrueif theChannelis active and so connected.protected booleanisCompatible(EventLoop loop)Returntrueif the givenEventLoopis compatible with this instance.booleanisOpen()Returnstrueif theChannelis open and may get active laterLocalAddresslocalAddress()Returns the local address where this channel is bound to.protected java.net.SocketAddresslocalAddress0()Returns theSocketAddresswhich is bound locally.ChannelMetadatametadata()protected AbstractChannel.AbstractUnsafenewUnsafe()Create a newAbstractChannel.AbstractUnsafeinstance which will be used for the life-time of theChannelLocalServerChannelparent()Returns the parent of this channel.private voidreadInbound()private voidreleaseInboundBuffers()LocalAddressremoteAddress()Returns the remote address where this channel is connected to.protected java.net.SocketAddressremoteAddress0()Return theSocketAddresswhich theChannelis connected to.private voidrunFinishPeerReadTask(LocalChannel peer)private voidtryClose(boolean isActive)-
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, doShutdownOutput, equals, eventLoop, filterOutboundMessage, flush, hashCode, id, invalidateLocalAddress, invalidateRemoteAddress, isRegistered, isWritable, newChannelPipeline, newFailedFuture, newId, newProgressivePromise, newPromise, newSucceededFuture, pipeline, read, toString, unsafe, 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
-
-
-
-
Field Detail
-
logger
private static final InternalLogger logger
-
FINISH_READ_FUTURE_UPDATER
private static final java.util.concurrent.atomic.AtomicReferenceFieldUpdater<LocalChannel,Future> FINISH_READ_FUTURE_UPDATER
-
METADATA
private static final ChannelMetadata METADATA
-
MAX_READER_STACK_DEPTH
private static final int MAX_READER_STACK_DEPTH
- See Also:
- Constant Field Values
-
config
private final ChannelConfig config
-
inboundBuffer
final java.util.Queue<java.lang.Object> inboundBuffer
-
readTask
private final java.lang.Runnable readTask
-
shutdownHook
private final java.lang.Runnable shutdownHook
-
state
private volatile LocalChannel.State state
-
peer
private volatile LocalChannel peer
-
localAddress
private volatile LocalAddress localAddress
-
remoteAddress
private volatile LocalAddress remoteAddress
-
connectPromise
private volatile ChannelPromise connectPromise
-
readInProgress
private volatile boolean readInProgress
-
writeInProgress
private volatile boolean writeInProgress
-
finishReadFuture
private volatile Future<?> finishReadFuture
-
-
Constructor Detail
-
LocalChannel
public LocalChannel()
-
LocalChannel
protected LocalChannel(LocalServerChannel parent, LocalChannel peer)
-
-
Method Detail
-
metadata
public ChannelMetadata metadata()
Description copied from interface:Channel
-
config
public ChannelConfig config()
Description copied from interface:ChannelReturns the configuration of this channel.
-
parent
public LocalServerChannel parent()
Description copied from interface:ChannelReturns the parent of this channel.- Specified by:
parentin interfaceChannel- Overrides:
parentin classAbstractChannel- Returns:
- the parent channel.
nullif this channel does not have a parent channel.
-
localAddress
public LocalAddress localAddress()
Description copied from interface:ChannelReturns the local address where this channel is bound to. The returnedSocketAddressis supposed to be down-cast into more concrete type such asInetSocketAddressto retrieve the detailed information.- Specified by:
localAddressin interfaceChannel- Overrides:
localAddressin classAbstractChannel- Returns:
- the local address of this channel.
nullif this channel is not bound.
-
remoteAddress
public LocalAddress remoteAddress()
Description copied from interface:ChannelReturns the remote address where this channel is connected to. The returnedSocketAddressis supposed to be down-cast into more concrete type such asInetSocketAddressto retrieve the detailed information.- Specified by:
remoteAddressin interfaceChannel- Overrides:
remoteAddressin classAbstractChannel- Returns:
- the remote address of this channel.
nullif this channel is not connected. If this channel is not connected but it can receive messages from arbitrary remote addresses (e.g.DatagramChannel, useDefaultAddressedEnvelope.recipient()to determine the origination of the received message as this method will returnnull.
-
isOpen
public boolean isOpen()
Description copied from interface:ChannelReturnstrueif theChannelis open and may get active later
-
isActive
public boolean isActive()
Description copied from interface:ChannelReturntrueif theChannelis active and so connected.
-
newUnsafe
protected AbstractChannel.AbstractUnsafe newUnsafe()
Description copied from class:AbstractChannelCreate a newAbstractChannel.AbstractUnsafeinstance which will be used for the life-time of theChannel- Specified by:
newUnsafein classAbstractChannel
-
isCompatible
protected boolean isCompatible(EventLoop loop)
Description copied from class:AbstractChannelReturntrueif the givenEventLoopis compatible with this instance.- Specified by:
isCompatiblein classAbstractChannel
-
localAddress0
protected java.net.SocketAddress localAddress0()
Description copied from class:AbstractChannelReturns theSocketAddresswhich is bound locally.- Specified by:
localAddress0in classAbstractChannel
-
remoteAddress0
protected java.net.SocketAddress remoteAddress0()
Description copied from class:AbstractChannelReturn theSocketAddresswhich theChannelis connected to.- Specified by:
remoteAddress0in classAbstractChannel
-
doRegister
protected void doRegister() throws java.lang.ExceptionDescription copied from class:AbstractChannelIs called after theChannelis registered with itsEventLoopas part of the register process. Sub-classes may override this method- Overrides:
doRegisterin classAbstractChannel- Throws:
java.lang.Exception
-
doBind
protected void doBind(java.net.SocketAddress localAddress) throws java.lang.ExceptionDescription copied from class:AbstractChannelBind theChannelto theSocketAddress- Specified by:
doBindin classAbstractChannel- Throws:
java.lang.Exception
-
doDisconnect
protected void doDisconnect() throws java.lang.ExceptionDescription copied from class:AbstractChannelDisconnect thisChannelfrom its remote peer- Specified by:
doDisconnectin classAbstractChannel- Throws:
java.lang.Exception
-
doClose
protected void doClose() throws java.lang.ExceptionDescription copied from class:AbstractChannelClose theChannel- Specified by:
doClosein classAbstractChannel- Throws:
java.lang.Exception
-
tryClose
private void tryClose(boolean isActive)
-
doDeregister
protected void doDeregister() throws java.lang.ExceptionDescription copied from class:AbstractChannel- Overrides:
doDeregisterin classAbstractChannel- Throws:
java.lang.Exception
-
readInbound
private void readInbound()
-
doBeginRead
protected void doBeginRead() throws java.lang.ExceptionDescription copied from class:AbstractChannelSchedule a read operation.- Specified by:
doBeginReadin classAbstractChannel- Throws:
java.lang.Exception
-
doWrite
protected void doWrite(ChannelOutboundBuffer in) throws java.lang.Exception
Description copied from class:AbstractChannelFlush the content of the given buffer to the remote peer.- Specified by:
doWritein classAbstractChannel- Throws:
java.lang.Exception
-
finishPeerRead
private void finishPeerRead(LocalChannel peer)
-
runFinishPeerReadTask
private void runFinishPeerReadTask(LocalChannel peer)
-
releaseInboundBuffers
private void releaseInboundBuffers()
-
finishPeerRead0
private void finishPeerRead0(LocalChannel peer)
-
-