diff options
author | 2015-07-06 07:10:34 -0700 | |
---|---|---|
committer | 2015-07-06 07:10:34 -0700 | |
commit | bdfd8976e14282977483b24826b171a22582cbb1 (patch) | |
tree | a6b6ce62f3e005e9f305875db2c88e6c61473ad9 /src/core/surface | |
parent | 51fbeb0c7c1f9d6f92fd66adcb1c788bdfce29e2 (diff) | |
parent | d1dd3a68a2d4af56f1409327c197590dac6968cb (diff) |
Merge github.com:grpc/grpc into tis-but-thy-name
Diffstat (limited to 'src/core/surface')
-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: |