diff options
author | Muxi Yan <mxyan@google.com> | 2017-07-08 10:54:46 -0700 |
---|---|---|
committer | Muxi Yan <mxyan@google.com> | 2017-07-08 10:54:46 -0700 |
commit | fbd06f720297b4e622eabf4d1d8f7cdcbc3fde5a (patch) | |
tree | 6998537396bf417265a6d6b351e63157c21235cb | |
parent | 4f85558ba829e5ad072f54d58b49de7710ba585c (diff) |
Comments and fixes
-rw-r--r-- | src/core/lib/compression/stream_compression.h | 13 | ||||
-rw-r--r-- | test/core/compression/stream_compression_test.c | 10 |
2 files changed, 15 insertions, 8 deletions
diff --git a/src/core/lib/compression/stream_compression.h b/src/core/lib/compression/stream_compression.h index 41a7b669f7..cf009fdadd 100644 --- a/src/core/lib/compression/stream_compression.h +++ b/src/core/lib/compression/stream_compression.h @@ -31,14 +31,15 @@ typedef struct grpc_stream_compression_context { } grpc_stream_compression_context; typedef enum grpc_stream_compression_method { - GRPC_STREAM_COMPRESSION_COMPRESS, + GRPC_STREAM_COMPRESSION_COMPRESS = 0, GRPC_STREAM_COMPRESSION_DECOMPRESS } grpc_stream_compression_method; typedef enum grpc_stream_compression_flush { - GRPC_STREAM_COMPRESSION_FLUSH_NONE, + GRPC_STREAM_COMPRESSION_FLUSH_NONE = 0, GRPC_STREAM_COMPRESSION_FLUSH_SYNC, - GRPC_STREAM_COMPRESSION_FLUSH_FINISH + GRPC_STREAM_COMPRESSION_FLUSH_FINISH, + GRPC_STREAM_COMPRESSION_FLUSH_COUNT } grpc_stream_compression_flush; /** @@ -47,6 +48,12 @@ typedef enum grpc_stream_compression_flush { * into \a out. If all the bytes in input buffer \a in are depleted and \a flush * is not GRPC_STREAM_COMPRESSION_FLUSH_NONE, the corresponding flush method is * executed. The total number of bytes emitted is outputed in \a output_size. + * + * A SYNC flush indicates that the entire messages in \a in can be decompressed + * from \a out. A FINISH flush implies a SYNC flush, and that any further + * compression will not be dependent on the state of the current context and any + * previous compressed bytes. It allows corresponding decompression context to + * be dropped when reaching this boundary. */ bool grpc_stream_compress(grpc_stream_compression_context *ctx, grpc_slice_buffer *in, grpc_slice_buffer *out, diff --git a/test/core/compression/stream_compression_test.c b/test/core/compression/stream_compression_test.c index e318020245..5c025e96ab 100644 --- a/test/core/compression/stream_compression_test.c +++ b/test/core/compression/stream_compression_test.c @@ -72,7 +72,7 @@ static void test_stream_compression_simple_compress_decompress() { size_t output_size; GPR_ASSERT(grpc_stream_decompress(decompress_ctx, &relay, &sink, &output_size, ~(size_t)0, &end_of_context)); - GPR_ASSERT(output_size = sizeof(test_str) - 1); + GPR_ASSERT(output_size == sizeof(test_str) - 1); grpc_stream_compression_context_destroy(compress_ctx); grpc_stream_compression_context_destroy(decompress_ctx); @@ -107,7 +107,7 @@ test_stream_compression_simple_compress_decompress_with_output_size_constraint() size_t max_output_size = 2; GPR_ASSERT(grpc_stream_decompress(decompress_ctx, &relay, &sink, &output_size, max_output_size, &end_of_context)); - GPR_ASSERT(output_size = max_output_size); + GPR_ASSERT(output_size == max_output_size); GPR_ASSERT(end_of_context == false); grpc_slice slice_recv = grpc_slice_buffer_take_first(&sink); char *str_recv = (char *)GRPC_SLICE_START_PTR(slice_recv); @@ -118,8 +118,8 @@ test_stream_compression_simple_compress_decompress_with_output_size_constraint() size_t remaining_size = sizeof(test_str) - 1 - max_output_size; GPR_ASSERT(grpc_stream_decompress(decompress_ctx, &relay, &sink, &output_size, remaining_size, &end_of_context)); - GPR_ASSERT(output_size = remaining_size); - GPR_ASSERT(end_of_context = true); + GPR_ASSERT(output_size == remaining_size); + GPR_ASSERT(end_of_context == true); GPR_ASSERT(slice_buffer_equals_string(&sink, test_str + max_output_size)); @@ -152,7 +152,7 @@ test_stream_compression_simple_compress_decompress_with_large_data() { size_t output_size; GPR_ASSERT(grpc_stream_decompress(decompress_ctx, &relay, &sink, &output_size, ~(size_t)0, &end_of_context)); - GPR_ASSERT(output_size = sizeof(test_str) - 1); + GPR_ASSERT(output_size == sizeof(test_str) - 1); grpc_stream_compression_context_destroy(compress_ctx); grpc_stream_compression_context_destroy(decompress_ctx); |