aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/csharp/Grpc.Core/Internal/ClientRequestStream.cs
diff options
context:
space:
mode:
authorGravatar Jan Tattermusch <jtattermusch@google.com>2015-08-06 21:30:26 -0700
committerGravatar Jan Tattermusch <jtattermusch@google.com>2015-08-07 17:36:05 -0700
commitbff90ac384cd19186e4ccde629ad8c6b7a17cd5d (patch)
treea4b7fdf312ff519b7c94883c7f9b29ab30482b44 /src/csharp/Grpc.Core/Internal/ClientRequestStream.cs
parentc29812fc2c9285046a886a0c3a29127679c4b02b (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.cs24
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);
+ }
}
}