Class Netty5DataBufferFactory

java.lang.Object
org.springframework.core.io.buffer.Netty5DataBufferFactory
All Implemented Interfaces:
DataBufferFactory

public class Netty5DataBufferFactory extends Object implements DataBufferFactory
Implementation of the DataBufferFactory interface based on a Netty 5 BufferAllocator.
Since:
6.0
Author:
Violeta Georgieva, Arjen Poutsma
  • Constructor Details

    • Netty5DataBufferFactory

      public Netty5DataBufferFactory(io.netty5.buffer.BufferAllocator bufferAllocator)
      Create a new Netty5DataBufferFactory based on the given factory.
      Parameters:
      bufferAllocator - the factory to use
  • Method Details

    • getBufferAllocator

      public io.netty5.buffer.BufferAllocator getBufferAllocator()
      Return the BufferAllocator used by this factory.
    • allocateBuffer

      @Deprecated public Netty5DataBuffer allocateBuffer()
      Deprecated.
      Description copied from interface: DataBufferFactory
      Allocate a data buffer of a default initial capacity. Depending on the underlying implementation and its configuration, this will be heap-based or direct buffer.
      Specified by:
      allocateBuffer in interface DataBufferFactory
      Returns:
      the allocated buffer
    • allocateBuffer

      public Netty5DataBuffer allocateBuffer(int initialCapacity)
      Description copied from interface: DataBufferFactory
      Allocate a data buffer of the given initial capacity. Depending on the underlying implementation and its configuration, this will be heap-based or direct buffer.
      Specified by:
      allocateBuffer in interface DataBufferFactory
      Parameters:
      initialCapacity - the initial capacity of the buffer to allocate
      Returns:
      the allocated buffer
    • wrap

      public Netty5DataBuffer wrap(ByteBuffer byteBuffer)
      Description copied from interface: DataBufferFactory
      Wrap the given ByteBuffer in a DataBuffer. Unlike allocating, wrapping does not use new memory.
      Specified by:
      wrap in interface DataBufferFactory
      Parameters:
      byteBuffer - the NIO byte buffer to wrap
      Returns:
      the wrapped buffer
    • wrap

      public Netty5DataBuffer wrap(byte[] bytes)
      Description copied from interface: DataBufferFactory
      Wrap the given byte array in a DataBuffer. Unlike allocating, wrapping does not use new memory.
      Specified by:
      wrap in interface DataBufferFactory
      Parameters:
      bytes - the byte array to wrap
      Returns:
      the wrapped buffer
    • wrap

      public Netty5DataBuffer wrap(io.netty5.buffer.Buffer buffer)
      Wrap the given Netty Buffer in a Netty5DataBuffer.
      Parameters:
      buffer - the Netty buffer to wrap
      Returns:
      the wrapped buffer
    • join

      public DataBuffer join(List<? extends DataBuffer> dataBuffers)
      Return a new DataBuffer composed of the dataBuffers elements joined together. Depending on the implementation, the returned buffer may be a single buffer containing all data of the provided buffers, or it may be a true composite that contains references to the buffers.

      Note that the given data buffers do not have to be released, as they are released as part of the returned composite.

      This implementation uses Netty's CompositeBuffer.

      Specified by:
      join in interface DataBufferFactory
      Parameters:
      dataBuffers - the data buffers to be composed
      Returns:
      a buffer that is composed of the dataBuffers argument
    • isDirect

      public boolean isDirect()
      Description copied from interface: DataBufferFactory
      Indicates whether this factory allocates direct buffers (i.e. non-heap, native memory).
      Specified by:
      isDirect in interface DataBufferFactory
      Returns:
      true if this factory allocates direct buffers; false otherwise
    • toBuffer

      public static io.netty5.buffer.Buffer toBuffer(DataBuffer buffer)
      Return the given Netty DataBuffer as a Buffer.

      Returns the native buffer if buffer is a Netty5DataBuffer; returns BufferAllocator.copyOf(ByteBuffer) otherwise.

      Parameters:
      buffer - the DataBuffer to return a Buffer for
      Returns:
      the netty Buffer
    • toString

      public String toString()
      Overrides:
      toString in class Object