diff options
author | 2015-06-17 18:31:58 -0700 | |
---|---|---|
committer | 2015-06-17 18:33:24 -0700 | |
commit | 3df5c44c84c07c793da1dc9b68bc35ece4268d5e (patch) | |
tree | 7fc2112d8a4b8aff52c03640c1357e468868abb6 /src | |
parent | 81889aa8333da25bda9ae2551803adbf01c39f1e (diff) |
Introduced function to create byte buffers from the output of a byte buffer reader.
Diffstat (limited to 'src')
-rw-r--r-- | src/core/surface/byte_buffer.c | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/src/core/surface/byte_buffer.c b/src/core/surface/byte_buffer.c index 4817e00454..a930949f2d 100644 --- a/src/core/surface/byte_buffer.c +++ b/src/core/surface/byte_buffer.c @@ -55,6 +55,20 @@ grpc_byte_buffer *grpc_raw_compressed_byte_buffer_create( return bb; } +grpc_byte_buffer *grpc_raw_byte_buffer_from_reader( + grpc_byte_buffer_reader *reader) { + grpc_byte_buffer *bb = malloc(sizeof(grpc_byte_buffer)); + gpr_slice slice; + bb->type = GRPC_BB_RAW; + bb->data.raw.compression = GRPC_COMPRESS_NONE; + gpr_slice_buffer_init(&bb->data.raw.slice_buffer); + + while (grpc_byte_buffer_reader_next(reader, &slice)) { + gpr_slice_buffer_add(&bb->data.raw.slice_buffer, slice); + } + return bb; +} + grpc_byte_buffer *grpc_byte_buffer_copy(grpc_byte_buffer *bb) { switch (bb->type) { case GRPC_BB_RAW: |