Class NettyDataBufferFactory
java.lang.Object
org.springframework.core.io.buffer.NettyDataBufferFactory
- All Implemented Interfaces:
DataBufferFactory
Implementation of the
DataBufferFactory
interface based on a
Netty 4 ByteBufAllocator
.- Since:
- 5.0
- Author:
- Arjen Poutsma, Juergen Hoeller
- See Also:
-
PooledByteBufAllocator
UnpooledByteBufAllocator
-
Constructor Summary
ConstructorDescriptionNettyDataBufferFactory
(io.netty.buffer.ByteBufAllocator byteBufAllocator) Create a newNettyDataBufferFactory
based on the given factory. -
Method Summary
Modifier and TypeMethodDescriptionDeprecated.allocateBuffer
(int initialCapacity) Allocate a data buffer of the given initial capacity.io.netty.buffer.ByteBufAllocator
Return theByteBufAllocator
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.netty.buffer.ByteBuf
toByteBuf
(DataBuffer dataBuffer) Return the given NettyDataBuffer
as aByteBuf
.toString()
wrap
(byte[] bytes) Wrap the givenbyte
array in aDataBuffer
.wrap
(io.netty.buffer.ByteBuf byteBuf) Wrap the given NettyByteBuf
in aNettyDataBuffer
.wrap
(ByteBuffer byteBuffer) Wrap the givenByteBuffer
in aDataBuffer
.
-
Constructor Details
-
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 Details
-
getByteBufAllocator
public io.netty.buffer.ByteBufAllocator getByteBufAllocator()Return theByteBufAllocator
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 NettyByteBuf
in aNettyDataBuffer
.- Parameters:
byteBuf
- the Netty byte 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
CompositeByteBuf
.- 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
-
toByteBuf
Return the given NettyDataBuffer
as aByteBuf
.Returns the native buffer if
dataBuffer
is aNettyDataBuffer
; returnsUnpooled.wrappedBuffer(ByteBuffer)
otherwise.- Parameters:
dataBuffer
- theDataBuffer
to return aByteBuf
for- Returns:
- the netty
ByteBuf
-
toString
-