Skip to content
Closed
Changes from 1 commit
Commits
Show all changes
18 commits
Select commit Hold shift + click to select a range
c8810ad
Define an interface for retrieving a list of ByteBuffers.
voidzcy Jul 24, 2020
17d6dbb
Add methods to ReadableBuffer to support returning read bytes via Byt…
voidzcy Jul 24, 2020
83f0448
CompositeReadableBuffer's implementation for reading by returning Byt…
voidzcy Jul 24, 2020
69a1ddf
NettyReadableBuffer's implementation for reading by directly returnin…
voidzcy Jul 24, 2020
88d2b6f
Deframer gives an InputStream if the backing ReadableBuffer supports …
voidzcy Jul 24, 2020
94b5124
Feed a list of ByteBuffers into protobuf if the InputStream implement…
voidzcy Jul 24, 2020
ce8969e
Fix readByteBuffers operation for CompositeReadableBuffer.
voidzcy Aug 4, 2020
a16b6ae
Improve ByteBuffer read for netty.
voidzcy Aug 4, 2020
0cb6ea8
update interface for getting a list of ByteBuffers.
voidzcy Aug 4, 2020
f9aaffc
Improve feeding ByteBuffer to protobuf.
voidzcy Aug 4, 2020
8a0c7a2
Should not close ReadableBuffer before reading the returned ByteBuffe…
voidzcy Aug 4, 2020
8fb4534
Add TODO for remembering current implementation leaks buffer.
voidzcy Aug 4, 2020
58165d6
Replace ByteBufferReadable interface with ManagedBytes, which takes t…
voidzcy Aug 5, 2020
e2b3991
Add api for reading data as ManagedBytes from ReadableBuffer.
voidzcy Aug 5, 2020
8959de5
Implement reading via ManagedBytes for netty.
voidzcy Aug 5, 2020
86414ad
Implement reading via ManagedBytes for composite.
voidzcy Aug 5, 2020
093e435
Change stream to use ManagedBytes for data transfer.
voidzcy Aug 5, 2020
c9c123c
Use new ManagedBufferReadable api to transfer data into protobuf and …
voidzcy Aug 5, 2020
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
Fix readByteBuffers operation for CompositeReadableBuffer.
  • Loading branch information
voidzcy committed Aug 4, 2020
commit ce8969eee87b970fbdc2c0b09d7c0114f69015c4
21 changes: 8 additions & 13 deletions core/src/main/java/io/grpc/internal/CompositeReadableBuffer.java
Original file line number Diff line number Diff line change
Expand Up @@ -73,20 +73,15 @@ public boolean shouldUseByteBuffer() {

@Override
public List<ByteBuffer> readByteBuffers(int length) {
checkReadable(length);
readableBytes -= length;

List<ByteBuffer> res = new ArrayList<>();
while (length > 0) {
ReadableBuffer buffer = buffers.peek();
int readLength = length;
if (buffer.readableBytes() <= length) {
readLength = buffer.readableBytes();
buffers.poll();
final List<ByteBuffer> res = new ArrayList<>();
ReadOperation op = new ReadOperation() {
@Override
int readInternal(ReadableBuffer buffer, int length) {
res.addAll(buffer.readByteBuffers(length));
return 0;
}
res.addAll(buffer.readByteBuffers(readLength));
length -= readLength;
}
};
execute(op, length);
return res;
}

Expand Down