This commit is contained in:
Rossen Stoyanchev
2018-11-02 11:01:44 -04:00
parent dc8f6f7177
commit 133b8b0b5a
3 changed files with 23 additions and 21 deletions

View File

@@ -179,15 +179,18 @@ public class NettyDataBuffer implements PooledDataBuffer {
if (buffers.length > 0) {
if (hasNettyDataBuffers(buffers)) {
ByteBuf[] nativeBuffers = Arrays.stream(buffers)
.map(b -> ((NettyDataBuffer) b).getNativeBuffer())
.toArray(ByteBuf[]::new);
ByteBuf[] nativeBuffers = new ByteBuf[buffers.length];
for (int i = 0 ; i < buffers.length; i++) {
nativeBuffers[i] = ((NettyDataBuffer) buffers[i]).getNativeBuffer();
}
write(nativeBuffers);
}
else {
ByteBuffer[] byteBuffers =
Arrays.stream(buffers).map(DataBuffer::asByteBuffer)
.toArray(ByteBuffer[]::new);
ByteBuffer[] byteBuffers = new ByteBuffer[buffers.length];
for (int i = 0 ; i < buffers.length; i++) {
byteBuffers[i] = buffers[i].asByteBuffer();
}
write(byteBuffers);
}
}

View File

@@ -82,6 +82,15 @@ public class NettyDataBufferFactory implements DataBufferFactory {
return new NettyDataBuffer(byteBuf, this);
}
/**
* Wrap the given Netty {@link ByteBuf} in a {@code NettyDataBuffer}.
* @param byteBuf the Netty byte buffer to wrap
* @return the wrapped buffer
*/
public NettyDataBuffer wrap(ByteBuf byteBuf) {
return new NettyDataBuffer(byteBuf, this);
}
/**
* {@inheritDoc}
* <p>This implementation uses Netty's {@link CompositeByteBuf}.
@@ -97,15 +106,6 @@ public class NettyDataBufferFactory implements DataBufferFactory {
return new NettyDataBuffer(composite, this);
}
/**
* Wrap the given Netty {@link ByteBuf} in a {@code NettyDataBuffer}.
* @param byteBuf the Netty byte buffer to wrap
* @return the wrapped buffer
*/
public NettyDataBuffer wrap(ByteBuf byteBuf) {
return new NettyDataBuffer(byteBuf, this);
}
/**
* Return the given Netty {@link DataBuffer} as a {@link ByteBuf}. Returns the
* {@linkplain NettyDataBuffer#getNativeBuffer() native buffer} if {@code buffer} is