diff options
author | 2015-08-06 21:30:26 -0700 | |
---|---|---|
committer | 2015-08-07 17:36:05 -0700 | |
commit | bff90ac384cd19186e4ccde629ad8c6b7a17cd5d (patch) | |
tree | a4b7fdf312ff519b7c94883c7f9b29ab30482b44 /src/csharp/Grpc.Core/Internal/ClientRequestStream.cs | |
parent | c29812fc2c9285046a886a0c3a29127679c4b02b (diff) |
added WriteOptions support and enabled NoCompress flag to be used for all writes
Diffstat (limited to 'src/csharp/Grpc.Core/Internal/ClientRequestStream.cs')
-rw-r--r-- | src/csharp/Grpc.Core/Internal/ClientRequestStream.cs | 24 |
1 files changed, 22 insertions, 2 deletions
diff --git a/src/csharp/Grpc.Core/Internal/ClientRequestStream.cs b/src/csharp/Grpc.Core/Internal/ClientRequestStream.cs index 58f493463b..4a14694977 100644 --- a/src/csharp/Grpc.Core/Internal/ClientRequestStream.cs +++ b/src/csharp/Grpc.Core/Internal/ClientRequestStream.cs @@ -40,24 +40,44 @@ namespace Grpc.Core.Internal internal class ClientRequestStream<TRequest, TResponse> : IClientStreamWriter<TRequest> { readonly AsyncCall<TRequest, TResponse> call; + WriteOptions writeOptions; public ClientRequestStream(AsyncCall<TRequest, TResponse> call) { this.call = call; + this.writeOptions = call.Details.Options.WriteOptions; } public Task WriteAsync(TRequest message) { var taskSource = new AsyncCompletionTaskSource<object>(); - call.StartSendMessage(message, taskSource.CompletionDelegate); + call.StartSendMessage(message, GetWriteFlags(), taskSource.CompletionDelegate); return taskSource.Task; } public Task CompleteAsync() { var taskSource = new AsyncCompletionTaskSource<object>(); - call.StartSendCloseFromClient(taskSource.CompletionDelegate); + call.StartSendCloseFromClient(GetWriteFlags(), taskSource.CompletionDelegate); return taskSource.Task; } + + public WriteOptions WriteOptions + { + get + { + return this.writeOptions; + } + set + { + writeOptions = value; + } + } + + private WriteFlags GetWriteFlags() + { + var options = writeOptions; + return options != null ? options.Flags : default(WriteFlags); + } } } |