Class KQueueSocketChannel

  • All Implemented Interfaces:
    io.netty5.channel.Channel, io.netty5.channel.ChannelOutboundInvoker, io.netty5.channel.IoHandle, io.netty5.channel.socket.SocketChannel, io.netty5.channel.unix.UnixChannel, io.netty5.util.AttributeMap, io.netty5.util.concurrent.FuturePromiseFactory, Comparable<io.netty5.channel.Channel>

    @UnstableApi
    public final class KQueueSocketChannel
    extends io.netty5.channel.AbstractChannel<P,​SocketAddress,​SocketAddress>
    implements io.netty5.channel.socket.SocketChannel
    SocketChannel implementation that uses KQueue.

    Available options

    In addition to the options provided by SocketChannel and UnixChannel, KQueueSocketChannel allows the following options in the option map:
    ChannelOption INET INET6 UNIX
    IntegerUnixChannelOptionXXX
    RawUnixChannelOptionXXX
    KQueueChannelOption.SO_SNDLOWATXX-
    KQueueChannelOption.TCP_NOPUSHXX-
    ChannelOption.TCP_FASTOPEN_CONNECTXX-
    • Nested Class Summary

      • Nested classes/interfaces inherited from class io.netty5.channel.AbstractChannel

        io.netty5.channel.AbstractChannel.DefaultAbstractChannelPipeline, io.netty5.channel.AbstractChannel.ReadSink, io.netty5.channel.AbstractChannel.WriteSink
    • Field Summary

      Fields 
      Modifier and Type Field Description
      protected boolean active  
    • Method Summary

      All Methods Static Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      protected static void checkResolvable​(InetSocketAddress addr)  
      protected void doBind​(SocketAddress local)  
      protected void doClearScheduledRead()  
      protected void doClose()  
      protected boolean doConnect​(SocketAddress remoteAddress, SocketAddress localAddress, io.netty5.buffer.Buffer initialData)
      Connect to the remote peer
      protected boolean doConnect0​(SocketAddress remoteAddress, SocketAddress localAddress, io.netty5.buffer.Buffer initialData)  
      protected void doDisconnect()  
      protected boolean doFinishConnect​(SocketAddress requestedRemoteAddress)  
      protected void doRead​(boolean wasReadPendingAlready)  
      protected int doReadBytes​(io.netty5.buffer.Buffer buffer)
      Read bytes into the given Buffer and return the amount.
      protected boolean doReadNow​(io.netty5.channel.AbstractChannel.ReadSink readSink)  
      protected void doShutdown​(io.netty5.channel.ChannelShutdownDirection direction)  
      protected int doWriteBytes​(io.netty5.buffer.Buffer buf)  
      protected void doWriteNow​(io.netty5.channel.AbstractChannel.WriteSink writeSink)  
      io.netty5.channel.unix.FileDescriptor fd()  
      protected boolean fetchLocalAddress()  
      protected Object filterOutboundMessage​(Object msg)  
      protected <T> T getExtendedOption​(io.netty5.channel.ChannelOption<T> option)  
      boolean isActive()  
      protected boolean isExtendedOptionSupported​(io.netty5.channel.ChannelOption<?> option)  
      boolean isOpen()  
      boolean isShutdown​(io.netty5.channel.ChannelShutdownDirection direction)  
      protected boolean isWriteFlushedScheduled()  
      protected SocketAddress localAddress0()  
      protected io.netty5.buffer.Buffer newDirectBuffer​(io.netty5.buffer.Buffer buf)
      Returns an off-heap copy of, and then closes, the given Buffer.
      protected io.netty5.buffer.Buffer newDirectBuffer​(io.netty5.util.Resource<?> holder, io.netty5.buffer.Buffer buf)
      Returns an off-heap copy of the given Buffer, and then closes the holder under the assumption that it owned (or was itself) the buffer.
      protected io.netty5.util.concurrent.Future<Executor> prepareToClose()  
      protected io.netty5.buffer.BufferAllocator readBufferAllocator()  
      protected void readLoopComplete()  
      protected io.netty5.channel.kqueue.KQueueRegistration registration()  
      protected SocketAddress remoteAddress0()  
      protected <T> void setExtendedOption​(io.netty5.channel.ChannelOption<T> option, T value)  
      protected void writeLoopComplete​(boolean allWritten)  
      • Methods inherited from class io.netty5.channel.AbstractChannel

        bufferAllocator, cacheAddresses, closeFuture, closeTransport, compareTo, equals, executor, finishConnect, getOption, hashCode, id, isConnectPending, isOptionSupported, isReadPending, isRegistered, isSupportingDisconnect, localAddress, newChannelPipeline, newSupportedIdentityOptionsSet, parent, pipeline, readHandle, readIfIsAutoRead, readNow, remoteAddress, setOption, shutdownReadSide, toString, validateEventLoopGroup, validateFileRegion, writableBytes, writeFlushed, writeFlushedNow, writeHandle
      • Methods inherited from class io.netty5.util.DefaultAttributeMap

        attr, hasAttr
      • Methods inherited from interface io.netty5.util.AttributeMap

        attr, hasAttr
      • Methods inherited from interface io.netty5.channel.Channel

        bind, bufferAllocator, close, closeFuture, connect, connect, deregister, disconnect, executor, flush, getOption, id, isActive, isOpen, isOptionSupported, isWritable, localAddress, pipeline, read, read, register, remoteAddress, sendOutboundEvent, setOption, shutdown, writableBytes, write, writeAndFlush
      • Methods inherited from interface io.netty5.channel.ChannelOutboundInvoker

        newFailedFuture, newPromise, newSucceededFuture, newSucceededFuture
      • Methods inherited from interface io.netty5.channel.IoHandle

        isRegistered
      • Methods inherited from interface io.netty5.channel.socket.SocketChannel

        parent
    • Field Detail

      • active

        protected volatile boolean active
    • Constructor Detail

      • KQueueSocketChannel

        public KQueueSocketChannel​(io.netty5.channel.EventLoop eventLoop)
      • KQueueSocketChannel

        public KQueueSocketChannel​(io.netty5.channel.EventLoop eventLoop,
                                   ProtocolFamily protocolFamily)
      • KQueueSocketChannel

        public KQueueSocketChannel​(io.netty5.channel.EventLoop eventLoop,
                                   int fd,
                                   ProtocolFamily protocolFamily)
    • Method Detail

      • getExtendedOption

        protected <T> T getExtendedOption​(io.netty5.channel.ChannelOption<T> option)
      • setExtendedOption

        protected <T> void setExtendedOption​(io.netty5.channel.ChannelOption<T> option,
                                             T value)
      • isExtendedOptionSupported

        protected boolean isExtendedOptionSupported​(io.netty5.channel.ChannelOption<?> option)
      • isShutdown

        public boolean isShutdown​(io.netty5.channel.ChannelShutdownDirection direction)
        Specified by:
        isShutdown in interface io.netty5.channel.Channel
      • registration

        protected final io.netty5.channel.kqueue.KQueueRegistration registration()
      • fd

        public final io.netty5.channel.unix.FileDescriptor fd()
        Specified by:
        fd in interface io.netty5.channel.unix.UnixChannel
      • isActive

        public boolean isActive()
        Specified by:
        isActive in interface io.netty5.channel.Channel
      • doDisconnect

        protected void doDisconnect()
                             throws Exception
        Specified by:
        doDisconnect in class io.netty5.channel.AbstractChannel<P extends io.netty5.channel.unix.UnixChannel,​SocketAddress,​SocketAddress>
        Throws:
        Exception
      • isOpen

        public final boolean isOpen()
        Specified by:
        isOpen in interface io.netty5.channel.Channel
      • doRead

        protected final void doRead​(boolean wasReadPendingAlready)
        Specified by:
        doRead in class io.netty5.channel.AbstractChannel<P extends io.netty5.channel.unix.UnixChannel,​SocketAddress,​SocketAddress>
      • newDirectBuffer

        protected final io.netty5.buffer.Buffer newDirectBuffer​(io.netty5.buffer.Buffer buf)
        Returns an off-heap copy of, and then closes, the given Buffer.
      • newDirectBuffer

        protected final io.netty5.buffer.Buffer newDirectBuffer​(io.netty5.util.Resource<?> holder,
                                                                io.netty5.buffer.Buffer buf)
        Returns an off-heap copy of the given Buffer, and then closes the holder under the assumption that it owned (or was itself) the buffer.
      • checkResolvable

        protected static void checkResolvable​(InetSocketAddress addr)
      • doReadBytes

        protected final int doReadBytes​(io.netty5.buffer.Buffer buffer)
                                 throws Exception
        Read bytes into the given Buffer and return the amount.
        Throws:
        Exception
      • doWriteBytes

        protected final int doWriteBytes​(io.netty5.buffer.Buffer buf)
                                  throws Exception
        Throws:
        Exception
      • doReadNow

        protected boolean doReadNow​(io.netty5.channel.AbstractChannel.ReadSink readSink)
                             throws Exception
        Specified by:
        doReadNow in class io.netty5.channel.AbstractChannel<P extends io.netty5.channel.unix.UnixChannel,​SocketAddress,​SocketAddress>
        Throws:
        Exception
      • readLoopComplete

        protected void readLoopComplete()
        Overrides:
        readLoopComplete in class io.netty5.channel.AbstractChannel<P extends io.netty5.channel.unix.UnixChannel,​SocketAddress,​SocketAddress>
      • isWriteFlushedScheduled

        protected boolean isWriteFlushedScheduled()
        Overrides:
        isWriteFlushedScheduled in class io.netty5.channel.AbstractChannel<P extends io.netty5.channel.unix.UnixChannel,​SocketAddress,​SocketAddress>
      • doFinishConnect

        protected final boolean doFinishConnect​(SocketAddress requestedRemoteAddress)
                                         throws Exception
        Specified by:
        doFinishConnect in class io.netty5.channel.AbstractChannel<P extends io.netty5.channel.unix.UnixChannel,​SocketAddress,​SocketAddress>
        Throws:
        Exception
      • fetchLocalAddress

        protected boolean fetchLocalAddress()
      • doConnect

        protected boolean doConnect​(SocketAddress remoteAddress,
                                    SocketAddress localAddress,
                                    io.netty5.buffer.Buffer initialData)
                             throws Exception
        Connect to the remote peer
        Specified by:
        doConnect in class io.netty5.channel.AbstractChannel<P extends io.netty5.channel.unix.UnixChannel,​SocketAddress,​SocketAddress>
        Throws:
        Exception
      • localAddress0

        protected SocketAddress localAddress0()
        Specified by:
        localAddress0 in class io.netty5.channel.AbstractChannel<P extends io.netty5.channel.unix.UnixChannel,​SocketAddress,​SocketAddress>
      • remoteAddress0

        protected SocketAddress remoteAddress0()
        Specified by:
        remoteAddress0 in class io.netty5.channel.AbstractChannel<P extends io.netty5.channel.unix.UnixChannel,​SocketAddress,​SocketAddress>
      • doClearScheduledRead

        protected final void doClearScheduledRead()
        Overrides:
        doClearScheduledRead in class io.netty5.channel.AbstractChannel<P extends io.netty5.channel.unix.UnixChannel,​SocketAddress,​SocketAddress>
      • writeLoopComplete

        protected final void writeLoopComplete​(boolean allWritten)
        Overrides:
        writeLoopComplete in class io.netty5.channel.AbstractChannel<P extends io.netty5.channel.unix.UnixChannel,​SocketAddress,​SocketAddress>
      • readBufferAllocator

        protected io.netty5.buffer.BufferAllocator readBufferAllocator()
        Overrides:
        readBufferAllocator in class io.netty5.channel.AbstractChannel<P extends io.netty5.channel.unix.UnixChannel,​SocketAddress,​SocketAddress>