Class IoUringDomainSocketChannel

  • All Implemented Interfaces:
    io.netty.channel.Channel, io.netty.channel.ChannelOutboundInvoker, io.netty.channel.socket.DuplexChannel, io.netty.channel.unix.DomainSocketChannel, io.netty.channel.unix.UnixChannel, io.netty.util.AttributeMap, Comparable<io.netty.channel.Channel>

    public final class IoUringDomainSocketChannel
    extends io.netty.channel.AbstractChannel
    implements io.netty.channel.unix.DomainSocketChannel
    DomainSocketChannel implementation that uses linux io_uring
    • Nested Class Summary

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

        io.netty.channel.AbstractChannel.AbstractUnsafe
      • Nested classes/interfaces inherited from interface io.netty.channel.Channel

        io.netty.channel.Channel.Unsafe
    • 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 boolean allowMultiShotPollIn()  
      protected void cancelOutstandingReads​(io.netty.channel.IoRegistration registration, int numOutstandingReads)
      Cancel all outstanding reads
      protected void cancelOutstandingWrites​(io.netty.channel.IoRegistration registration, int numOutstandingWrites)
      Cancel all outstanding writes
      protected static void checkResolvable​(InetSocketAddress addr)  
      io.netty.channel.unix.DomainSocketChannelConfig config()  
      protected void doBeginRead()  
      protected void doBind​(SocketAddress local)  
      protected void doClose()  
      protected void doDeregister()  
      protected void doDisconnect()  
      protected void doRegister​(io.netty.channel.ChannelPromise promise)  
      protected void doShutdownOutput()  
      protected void doWrite​(io.netty.channel.ChannelOutboundBuffer in)  
      io.netty.channel.unix.FileDescriptor fd()  
      protected Object filterOutboundMessage​(Object msg)  
      boolean isActive()  
      protected boolean isCompatible​(io.netty.channel.EventLoop loop)  
      boolean isInputShutdown()  
      boolean isOpen()  
      boolean isOutputShutdown()  
      boolean isShutdown()  
      io.netty.channel.unix.DomainSocketAddress localAddress()  
      protected SocketAddress localAddress0()  
      io.netty.channel.ChannelMetadata metadata()  
      protected io.netty.buffer.ByteBuf newDirectBuffer​(io.netty.buffer.ByteBuf buf)  
      protected io.netty.buffer.ByteBuf newDirectBuffer​(Object holder, io.netty.buffer.ByteBuf buf)  
      protected io.netty.channel.uring.AbstractIoUringChannel.AbstractUringUnsafe newUnsafe()  
      protected short nextOpsId()
      Returns the next id that should be used when submitting IoUringIoOps.
      io.netty.channel.unix.PeerCredentials peerCredentials()
      Returns the unix credentials (uid, gid, pid) of the peer SO_PEERCRED
      protected io.netty.channel.IoRegistration registration()  
      io.netty.channel.unix.DomainSocketAddress remoteAddress()  
      protected SocketAddress remoteAddress0()  
      protected void scheduleWriteIfNeeded​(io.netty.channel.ChannelOutboundBuffer in, boolean submitAndRunNow)  
      io.netty.channel.ChannelFuture shutdown()  
      io.netty.channel.ChannelFuture shutdown​(io.netty.channel.ChannelPromise promise)  
      io.netty.channel.ChannelFuture shutdownInput()  
      io.netty.channel.ChannelFuture shutdownInput​(io.netty.channel.ChannelPromise promise)  
      io.netty.channel.ChannelFuture shutdownOutput()  
      io.netty.channel.ChannelFuture shutdownOutput​(io.netty.channel.ChannelPromise promise)  
      protected boolean socketIsEmpty​(int flags)
      Return if the socket is guaranteed to be empty when the submitted io was executed and the completion event be created.
      protected void submitAndRunNow()  
      • Methods inherited from class io.netty.channel.AbstractChannel

        closeFuture, compareTo, doRegister, equals, eventLoop, hashCode, id, invalidateLocalAddress, invalidateRemoteAddress, isRegistered, maxMessagesPerWrite, newChannelPipeline, newId, parent, pipeline, toString, unsafe, validateFileRegion, voidPromise
      • Methods inherited from class io.netty.util.DefaultAttributeMap

        attr, hasAttr
      • 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, connect, connect, connect, connect, deregister, deregister, disconnect, disconnect, eventLoop, flush, getOption, id, isActive, isOpen, isRegistered, isWritable, metadata, newFailedFuture, newProgressivePromise, newPromise, newSucceededFuture, parent, pipeline, read, setOption, unsafe, voidPromise, write, write, writeAndFlush, writeAndFlush
      • Methods inherited from interface io.netty.channel.socket.DuplexChannel

        isInputShutdown, isOutputShutdown, isShutdown, shutdown, shutdown, shutdownInput, shutdownInput, shutdownOutput, shutdownOutput
      • Methods inherited from interface io.netty.channel.unix.UnixChannel

        fd
    • Field Detail

      • active

        protected volatile boolean active
    • Constructor Detail

      • IoUringDomainSocketChannel

        public IoUringDomainSocketChannel()
    • Method Detail

      • config

        public io.netty.channel.unix.DomainSocketChannelConfig config()
        Specified by:
        config in interface io.netty.channel.Channel
        Specified by:
        config in interface io.netty.channel.unix.DomainSocketChannel
      • localAddress

        public io.netty.channel.unix.DomainSocketAddress localAddress()
        Specified by:
        localAddress in interface io.netty.channel.Channel
        Specified by:
        localAddress in interface io.netty.channel.unix.DomainSocketChannel
        Overrides:
        localAddress in class io.netty.channel.AbstractChannel
      • remoteAddress

        public io.netty.channel.unix.DomainSocketAddress remoteAddress()
        Specified by:
        remoteAddress in interface io.netty.channel.Channel
        Specified by:
        remoteAddress in interface io.netty.channel.unix.DomainSocketChannel
        Overrides:
        remoteAddress in class io.netty.channel.AbstractChannel
      • peerCredentials

        public io.netty.channel.unix.PeerCredentials peerCredentials()
                                                              throws IOException
        Returns the unix credentials (uid, gid, pid) of the peer SO_PEERCRED
        Throws:
        IOException
      • filterOutboundMessage

        protected Object filterOutboundMessage​(Object msg)
      • newUnsafe

        protected io.netty.channel.uring.AbstractIoUringChannel.AbstractUringUnsafe newUnsafe()
      • allowMultiShotPollIn

        protected boolean allowMultiShotPollIn()
      • metadata

        public io.netty.channel.ChannelMetadata metadata()
        Specified by:
        metadata in interface io.netty.channel.Channel
      • shutdown

        public final io.netty.channel.ChannelFuture shutdown()
        Specified by:
        shutdown in interface io.netty.channel.socket.DuplexChannel
      • shutdown

        public final io.netty.channel.ChannelFuture shutdown​(io.netty.channel.ChannelPromise promise)
        Specified by:
        shutdown in interface io.netty.channel.socket.DuplexChannel
      • doShutdownOutput

        protected final void doShutdownOutput()
                                       throws Exception
        Overrides:
        doShutdownOutput in class io.netty.channel.AbstractChannel
        Throws:
        Exception
      • isOutputShutdown

        public final boolean isOutputShutdown()
        Specified by:
        isOutputShutdown in interface io.netty.channel.socket.DuplexChannel
      • isInputShutdown

        public final boolean isInputShutdown()
        Specified by:
        isInputShutdown in interface io.netty.channel.socket.DuplexChannel
      • isShutdown

        public final boolean isShutdown()
        Specified by:
        isShutdown in interface io.netty.channel.socket.DuplexChannel
      • shutdownOutput

        public final io.netty.channel.ChannelFuture shutdownOutput()
        Specified by:
        shutdownOutput in interface io.netty.channel.socket.DuplexChannel
      • shutdownOutput

        public final io.netty.channel.ChannelFuture shutdownOutput​(io.netty.channel.ChannelPromise promise)
        Specified by:
        shutdownOutput in interface io.netty.channel.socket.DuplexChannel
      • shutdownInput

        public final io.netty.channel.ChannelFuture shutdownInput()
        Specified by:
        shutdownInput in interface io.netty.channel.socket.DuplexChannel
      • shutdownInput

        public final io.netty.channel.ChannelFuture shutdownInput​(io.netty.channel.ChannelPromise promise)
        Specified by:
        shutdownInput in interface io.netty.channel.socket.DuplexChannel
      • doRegister

        protected final void doRegister​(io.netty.channel.ChannelPromise promise)
      • cancelOutstandingReads

        protected final void cancelOutstandingReads​(io.netty.channel.IoRegistration registration,
                                                    int numOutstandingReads)
        Cancel all outstanding reads
        Parameters:
        registration - the IoRegistration.
        numOutstandingReads - the number of outstanding reads, or -1 if multi-shot was used.
      • cancelOutstandingWrites

        protected final void cancelOutstandingWrites​(io.netty.channel.IoRegistration registration,
                                                     int numOutstandingWrites)
        Cancel all outstanding writes
        Parameters:
        registration - the IoRegistration.
        numOutstandingWrites - the number of outstanding writes.
      • socketIsEmpty

        protected boolean socketIsEmpty​(int flags)
        Return if the socket is guaranteed to be empty when the submitted io was executed and the completion event be created.
        Parameters:
        flags - the flags that were part of the completion
        Returns:
        true if empty.
      • nextOpsId

        protected final short nextOpsId()
        Returns the next id that should be used when submitting IoUringIoOps.
        Returns:
        opsId
      • isOpen

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

        public boolean isActive()
        Specified by:
        isActive in interface io.netty.channel.Channel
      • fd

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

        protected boolean isCompatible​(io.netty.channel.EventLoop loop)
        Specified by:
        isCompatible in class io.netty.channel.AbstractChannel
      • newDirectBuffer

        protected final io.netty.buffer.ByteBuf newDirectBuffer​(io.netty.buffer.ByteBuf buf)
      • newDirectBuffer

        protected final io.netty.buffer.ByteBuf newDirectBuffer​(Object holder,
                                                                io.netty.buffer.ByteBuf buf)
      • doDisconnect

        protected void doDisconnect()
                             throws Exception
        Specified by:
        doDisconnect in class io.netty.channel.AbstractChannel
        Throws:
        Exception
      • doClose

        protected void doClose()
                        throws Exception
        Specified by:
        doClose in class io.netty.channel.AbstractChannel
        Throws:
        Exception
      • doBeginRead

        protected final void doBeginRead()
        Specified by:
        doBeginRead in class io.netty.channel.AbstractChannel
      • doWrite

        protected void doWrite​(io.netty.channel.ChannelOutboundBuffer in)
        Specified by:
        doWrite in class io.netty.channel.AbstractChannel
      • scheduleWriteIfNeeded

        protected void scheduleWriteIfNeeded​(io.netty.channel.ChannelOutboundBuffer in,
                                             boolean submitAndRunNow)
      • submitAndRunNow

        protected void submitAndRunNow()
      • registration

        protected final io.netty.channel.IoRegistration registration()
      • doDeregister

        protected final void doDeregister()
        Overrides:
        doDeregister in class io.netty.channel.AbstractChannel
      • doBind

        protected void doBind​(SocketAddress local)
                       throws Exception
        Specified by:
        doBind in class io.netty.channel.AbstractChannel
        Throws:
        Exception
      • checkResolvable

        protected static void checkResolvable​(InetSocketAddress addr)
      • localAddress0

        protected final SocketAddress localAddress0()
        Specified by:
        localAddress0 in class io.netty.channel.AbstractChannel
      • remoteAddress0

        protected final SocketAddress remoteAddress0()
        Specified by:
        remoteAddress0 in class io.netty.channel.AbstractChannel