Class NettyDataBufferFactory
- java.lang.Object
- org.springframework.core.io.buffer.NettyDataBufferFactory
- All Implemented Interfaces:
DataBufferFactory
public class NettyDataBufferFactory extends Object implements DataBufferFactory
Implementation of theDataBufferFactory
interface based on a NettyByteBufAllocator
.- Since:
- 5.0
- Author:
- Arjen Poutsma, Juergen Hoeller
- See Also:
PooledByteBufAllocator
,UnpooledByteBufAllocator
Constructor Summary
Constructors Constructor Description NettyDataBufferFactory(io.netty.buffer.ByteBufAllocator byteBufAllocator)
Create a newNettyDataBufferFactory
based on the given factory.
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description NettyDataBuffer
allocateBuffer()
Allocate a data buffer of a default initial capacity.NettyDataBuffer
allocateBuffer(int initialCapacity)
Allocate a data buffer of the given initial capacity.io.netty.buffer.ByteBufAllocator
getByteBufAllocator()
Return theByteBufAllocator
used by this factory.DataBuffer
join(List<? extends DataBuffer> dataBuffers)
Return a newDataBuffer
composed of thedataBuffers
elements joined together.static io.netty.buffer.ByteBuf
toByteBuf(DataBuffer buffer)
Return the given NettyDataBuffer
as aByteBuf
.String
toString()
DataBuffer
wrap(byte[] bytes)
Wrap the givenbyte
array in aDataBuffer
.NettyDataBuffer
wrap(io.netty.buffer.ByteBuf byteBuf)
Wrap the given NettyByteBuf
in aNettyDataBuffer
.NettyDataBuffer
wrap(ByteBuffer byteBuffer)
Wrap the givenByteBuffer
in aDataBuffer
.
Constructor Detail
NettyDataBufferFactory
public NettyDataBufferFactory(io.netty.buffer.ByteBufAllocator byteBufAllocator)
Create a newNettyDataBufferFactory
based on the given factory.- Parameters:
byteBufAllocator
- the factory to use- See Also:
PooledByteBufAllocator
,UnpooledByteBufAllocator
Method Detail
getByteBufAllocator
public io.netty.buffer.ByteBufAllocator getByteBufAllocator()
Return theByteBufAllocator
used by this factory.
allocateBuffer
public NettyDataBuffer allocateBuffer()
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
public NettyDataBuffer 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 interfaceDataBufferFactory
- Parameters:
initialCapacity
- the initial capacity of the buffer to allocate- Returns:
- the allocated buffer
wrap
public NettyDataBuffer wrap(ByteBuffer byteBuffer)
Description copied from interface:DataBufferFactory
- Specified by:
wrap
in interfaceDataBufferFactory
- Parameters:
byteBuffer
- the NIO byte buffer to wrap- Returns:
- the wrapped buffer
wrap
public DataBuffer wrap(byte[] bytes)
Description copied from interface:DataBufferFactory
- Specified by:
wrap
in interfaceDataBufferFactory
- Parameters:
bytes
- the byte array to wrap- Returns:
- the wrapped buffer
wrap
public NettyDataBuffer wrap(io.netty.buffer.ByteBuf byteBuf)
Wrap the given NettyByteBuf
in aNettyDataBuffer
.- Parameters:
byteBuf
- the Netty byte buffer to wrap- Returns:
- the wrapped buffer
join
public DataBuffer join(List<? extends DataBuffer> dataBuffers)
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
CompositeByteBuf
.- Specified by:
join
in interfaceDataBufferFactory
- Parameters:
dataBuffers
- the data buffers to be composed- Returns:
- a buffer that is composed from the
dataBuffers
argument
toByteBuf
public static io.netty.buffer.ByteBuf toByteBuf(DataBuffer buffer)
Return the given NettyDataBuffer
as aByteBuf
.Returns the native buffer if
buffer
is aNettyDataBuffer
; returnsUnpooled.wrappedBuffer(ByteBuffer)
otherwise.- Parameters:
buffer
- theDataBuffer
to return aByteBuf
for- Returns:
- the netty
ByteBuf