Class AbstractIoUringBufferRingAllocator

    • Constructor Detail

      • AbstractIoUringBufferRingAllocator

        protected AbstractIoUringBufferRingAllocator​(ByteBufAllocator allocator,
                                                     boolean largeAllocation)
        Creates new instance.
        Parameters:
        allocator - the ByteBufAllocator to use for the allocations
        largeAllocation - true if we should do a large allocation for the whole buffer ring and then slice out the buffers or false if we should do one allocation per buffer.
    • Method Detail

      • allocateBatch

        public final void allocateBatch​(java.util.function.Consumer<ByteBuf> consumer,
                                        int number)
        Description copied from interface: IoUringBufferRingAllocator
        Fill in num of ByteBufs. Important: The Consumer MUST not escape this method.
        Specified by:
        allocateBatch in interface IoUringBufferRingAllocator
        Parameters:
        consumer - the Consumer that will consume the buffers.
        number - the number of buffers that are passed to Consumer.accept(Object).
      • lastBytesRead

        public void lastBytesRead​(int attempted,
                                  int actual)
        Does nothing by default, sub-classes might override this.
        Specified by:
        lastBytesRead in interface IoUringBufferRingAllocator
        Parameters:
        attempted - the attempted bytes to read.
        actual - the number of bytes that could be read.
      • nextBufferSize

        protected abstract int nextBufferSize()
        Return the next buffer size of each ByteBuf that is put into the buffer ring.
        Returns:
        the next size.