|
|
|
@ -31,6 +31,7 @@ import org.springframework.util.Assert; |
|
|
|
* Netty {@link ByteBufAllocator}. |
|
|
|
* Netty {@link ByteBufAllocator}. |
|
|
|
* |
|
|
|
* |
|
|
|
* @author Arjen Poutsma |
|
|
|
* @author Arjen Poutsma |
|
|
|
|
|
|
|
* @author Juergen Hoeller |
|
|
|
* @since 5.0 |
|
|
|
* @since 5.0 |
|
|
|
* @see io.netty.buffer.PooledByteBufAllocator |
|
|
|
* @see io.netty.buffer.PooledByteBufAllocator |
|
|
|
* @see io.netty.buffer.UnpooledByteBufAllocator |
|
|
|
* @see io.netty.buffer.UnpooledByteBufAllocator |
|
|
|
@ -47,7 +48,7 @@ public class NettyDataBufferFactory implements DataBufferFactory { |
|
|
|
* @see io.netty.buffer.UnpooledByteBufAllocator |
|
|
|
* @see io.netty.buffer.UnpooledByteBufAllocator |
|
|
|
*/ |
|
|
|
*/ |
|
|
|
public NettyDataBufferFactory(ByteBufAllocator byteBufAllocator) { |
|
|
|
public NettyDataBufferFactory(ByteBufAllocator byteBufAllocator) { |
|
|
|
Assert.notNull(byteBufAllocator, "'byteBufAllocator' must not be null"); |
|
|
|
Assert.notNull(byteBufAllocator, "ByteBufAllocator must not be null"); |
|
|
|
this.byteBufAllocator = byteBufAllocator; |
|
|
|
this.byteBufAllocator = byteBufAllocator; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
@ -97,8 +98,12 @@ public class NettyDataBufferFactory implements DataBufferFactory { |
|
|
|
*/ |
|
|
|
*/ |
|
|
|
@Override |
|
|
|
@Override |
|
|
|
public DataBuffer join(List<? extends DataBuffer> dataBuffers) { |
|
|
|
public DataBuffer join(List<? extends DataBuffer> dataBuffers) { |
|
|
|
Assert.notNull(dataBuffers, "'dataBuffers' must not be null"); |
|
|
|
Assert.notEmpty(dataBuffers, "DataBuffer List must not be empty"); |
|
|
|
CompositeByteBuf composite = this.byteBufAllocator.compositeBuffer(dataBuffers.size()); |
|
|
|
int bufferCount = dataBuffers.size(); |
|
|
|
|
|
|
|
if (bufferCount == 1) { |
|
|
|
|
|
|
|
return dataBuffers.get(0); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
CompositeByteBuf composite = this.byteBufAllocator.compositeBuffer(bufferCount); |
|
|
|
for (DataBuffer dataBuffer : dataBuffers) { |
|
|
|
for (DataBuffer dataBuffer : dataBuffers) { |
|
|
|
Assert.isInstanceOf(NettyDataBuffer.class, dataBuffer); |
|
|
|
Assert.isInstanceOf(NettyDataBuffer.class, dataBuffer); |
|
|
|
composite.addComponent(true, ((NettyDataBuffer) dataBuffer).getNativeBuffer()); |
|
|
|
composite.addComponent(true, ((NettyDataBuffer) dataBuffer).getNativeBuffer()); |
|
|
|
@ -107,11 +112,11 @@ public class NettyDataBufferFactory implements DataBufferFactory { |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
/** |
|
|
|
/** |
|
|
|
* Return the given Netty {@link DataBuffer} as a {@link ByteBuf}. Returns the |
|
|
|
* Return the given Netty {@link DataBuffer} as a {@link ByteBuf}. |
|
|
|
* {@linkplain NettyDataBuffer#getNativeBuffer() native buffer} if {@code buffer} is |
|
|
|
* <p>Returns the {@linkplain NettyDataBuffer#getNativeBuffer() native buffer} |
|
|
|
* a {@link NettyDataBuffer}; returns {@link Unpooled#wrappedBuffer(ByteBuffer)} |
|
|
|
* if {@code buffer} is a {@link NettyDataBuffer}; returns |
|
|
|
* otherwise. |
|
|
|
* {@link Unpooled#wrappedBuffer(ByteBuffer)} otherwise. |
|
|
|
* @param buffer the {@code DataBuffer} to return a {@code ByteBuf} for. |
|
|
|
* @param buffer the {@code DataBuffer} to return a {@code ByteBuf} for |
|
|
|
* @return the netty {@code ByteBuf} |
|
|
|
* @return the netty {@code ByteBuf} |
|
|
|
*/ |
|
|
|
*/ |
|
|
|
public static ByteBuf toByteBuf(DataBuffer buffer) { |
|
|
|
public static ByteBuf toByteBuf(DataBuffer buffer) { |
|
|
|
|