Class Netty5DataBufferFactory
java.lang.Object
org.springframework.core.io.buffer.Netty5DataBufferFactory
- All Implemented Interfaces:
DataBufferFactory
Implementation of the
DataBufferFactory
interface based on a
Netty 5 BufferAllocator
.- Since:
- 6.0
- Author:
- Violeta Georgieva, Arjen Poutsma
-
Constructor Summary
ConstructorDescriptionNetty5DataBufferFactory
(io.netty5.buffer.BufferAllocator bufferAllocator) Create a newNetty5DataBufferFactory
based on the given factory. -
Method Summary
Modifier and TypeMethodDescriptionDeprecated.allocateBuffer
(int initialCapacity) Allocate a data buffer of the given initial capacity.io.netty5.buffer.BufferAllocator
Return theBufferAllocator
used by this factory.boolean
isDirect()
Indicates whether this factory allocates direct buffers (i.e.join
(List<? extends DataBuffer> dataBuffers) Return a newDataBuffer
composed of thedataBuffers
elements joined together.static io.netty5.buffer.Buffer
toBuffer
(DataBuffer buffer) Return the given NettyDataBuffer
as aBuffer
.toString()
wrap
(byte[] bytes) Wrap the givenbyte
array in aDataBuffer
.wrap
(io.netty5.buffer.Buffer buffer) Wrap the given NettyBuffer
in aNetty5DataBuffer
.wrap
(ByteBuffer byteBuffer) Wrap the givenByteBuffer
in aDataBuffer
.
-
Constructor Details
-
Netty5DataBufferFactory
public Netty5DataBufferFactory(io.netty5.buffer.BufferAllocator bufferAllocator) Create a newNetty5DataBufferFactory
based on the given factory.- Parameters:
bufferAllocator
- the factory to use
-
-
Method Details
-
getBufferAllocator
public io.netty5.buffer.BufferAllocator getBufferAllocator()Return theBufferAllocator
used by this factory. -
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 interfaceDataBufferFactory
- Returns:
- the allocated buffer
-
allocateBuffer
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 interfaceDataBufferFactory
- Parameters:
initialCapacity
- the initial capacity of the buffer to allocate- Returns:
- the allocated buffer
-
wrap
Description copied from interface:DataBufferFactory
- Specified by:
wrap
in interfaceDataBufferFactory
- Parameters:
byteBuffer
- the NIO byte buffer to wrap- Returns:
- the wrapped buffer
-
wrap
Description copied from interface:DataBufferFactory
- Specified by:
wrap
in interfaceDataBufferFactory
- Parameters:
bytes
- the byte array to wrap- Returns:
- the wrapped buffer
-
wrap
Wrap the given NettyBuffer
in aNetty5DataBuffer
.- Parameters:
buffer
- the Netty buffer to wrap- Returns:
- the wrapped buffer
-
join
Return a newDataBuffer
composed of thedataBuffers
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 interfaceDataBufferFactory
- 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 interfaceDataBufferFactory
- Returns:
true
if this factory allocates direct buffers;false
otherwise
-
toBuffer
Return the given NettyDataBuffer
as aBuffer
.Returns the native buffer if
buffer
is aNetty5DataBuffer
; returnsBufferAllocator.copyOf(ByteBuffer)
otherwise.- Parameters:
buffer
- theDataBuffer
to return aBuffer
for- Returns:
- the netty
Buffer
-
toString
-