aboutsummaryrefslogtreecommitdiffhomepage
path: root/src
diff options
context:
space:
mode:
authorGravatar Jan Tattermusch <jtattermusch@google.com>2015-05-18 15:59:02 -0700
committerGravatar Jan Tattermusch <jtattermusch@google.com>2015-05-20 18:35:57 -0700
commitbdf2e623efe89cb1dd72c3b0de89ecf304f1173d (patch)
tree724af85f177a0a08d16fd55a97c95e5c58686aaf /src
parentacfcfeffb6b530c790f7768f60c123ea97ee9f41 (diff)
make call object implement IDisposable
Diffstat (limited to 'src')
-rw-r--r--src/csharp/Grpc.Core/AsyncClientStreamingCall.cs14
-rw-r--r--src/csharp/Grpc.Core/AsyncDuplexStreamingCall.cs14
-rw-r--r--src/csharp/Grpc.Core/AsyncServerStreamingCall.cs14
3 files changed, 39 insertions, 3 deletions
diff --git a/src/csharp/Grpc.Core/AsyncClientStreamingCall.cs b/src/csharp/Grpc.Core/AsyncClientStreamingCall.cs
index 8cdc1c895b..83231ce4df 100644
--- a/src/csharp/Grpc.Core/AsyncClientStreamingCall.cs
+++ b/src/csharp/Grpc.Core/AsyncClientStreamingCall.cs
@@ -40,7 +40,7 @@ namespace Grpc.Core
/// <summary>
/// Return type for client streaming calls.
/// </summary>
- public sealed class AsyncClientStreamingCall<TRequest, TResponse>
+ public sealed class AsyncClientStreamingCall<TRequest, TResponse> : IDisposable
{
readonly IClientStreamWriter<TRequest> requestStream;
readonly Task<TResponse> result;
@@ -81,5 +81,17 @@ namespace Grpc.Core
{
return result.GetAwaiter();
}
+
+ /// <summary>
+ /// Provides means to provide after the call.
+ /// If the call has already finished normally (request stream has been completed and call result has been received), doesn't do anything.
+ /// Otherwise, requests cancellation of the call which should terminate all pending async operations associated with the call.
+ /// As a result, all resources being used by the call should be released eventually.
+ /// </summary>
+ public void Dispose()
+ {
+ // TODO(jtattermusch): implement
+ throw new NotImplementedException();
+ }
}
}
diff --git a/src/csharp/Grpc.Core/AsyncDuplexStreamingCall.cs b/src/csharp/Grpc.Core/AsyncDuplexStreamingCall.cs
index 0d13a3d052..39a54cc9a3 100644
--- a/src/csharp/Grpc.Core/AsyncDuplexStreamingCall.cs
+++ b/src/csharp/Grpc.Core/AsyncDuplexStreamingCall.cs
@@ -40,7 +40,7 @@ namespace Grpc.Core
/// <summary>
/// Return type for bidirectional streaming calls.
/// </summary>
- public sealed class AsyncDuplexStreamingCall<TRequest, TResponse>
+ public sealed class AsyncDuplexStreamingCall<TRequest, TResponse> : IDisposable
{
readonly IClientStreamWriter<TRequest> requestStream;
readonly IAsyncStreamReader<TResponse> responseStream;
@@ -72,5 +72,17 @@ namespace Grpc.Core
return requestStream;
}
}
+
+ /// <summary>
+ /// Provides means to cleanup after the call.
+ /// If the call has already finished normally (request stream has been completed and response stream has been fully read), doesn't do anything.
+ /// Otherwise, requests cancellation of the call which should terminate all pending async operations associated with the call.
+ /// As a result, all resources being used by the call should be released eventually.
+ /// </summary>
+ public void Dispose()
+ {
+ // TODO(jtattermusch): implement
+ throw new NotImplementedException();
+ }
}
}
diff --git a/src/csharp/Grpc.Core/AsyncServerStreamingCall.cs b/src/csharp/Grpc.Core/AsyncServerStreamingCall.cs
index 6a258d132c..1036f4a3ec 100644
--- a/src/csharp/Grpc.Core/AsyncServerStreamingCall.cs
+++ b/src/csharp/Grpc.Core/AsyncServerStreamingCall.cs
@@ -40,7 +40,7 @@ namespace Grpc.Core
/// <summary>
/// Return type for server streaming calls.
/// </summary>
- public sealed class AsyncServerStreamingCall<TResponse>
+ public sealed class AsyncServerStreamingCall<TResponse> : IDisposable
{
readonly IAsyncStreamReader<TResponse> responseStream;
@@ -59,5 +59,17 @@ namespace Grpc.Core
return responseStream;
}
}
+
+ /// <summary>
+ /// Provides means to cleanup after the call.
+ /// If the call has already finished normally (response stream has been fully read), doesn't do anything.
+ /// Otherwise, requests cancellation of the call which should terminate all pending async operations associated with the call.
+ /// As a result, all resources being used by the call should be released eventually.
+ /// </summary>
+ public void Dispose()
+ {
+ // TODO(jtattermusch): implement
+ throw new NotImplementedException();
+ }
}
}