aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/csharp/GrpcApi/RecordingObserver.cs
diff options
context:
space:
mode:
authorGravatar Craig Tiller <ctiller@google.com>2015-02-05 11:42:58 -0800
committerGravatar Craig Tiller <ctiller@google.com>2015-02-05 11:42:58 -0800
commit86d9159356d5d23981f122c3bd4ad912203666ca (patch)
tree1cf0b4622ada6275370277a748438102e44188f4 /src/csharp/GrpcApi/RecordingObserver.cs
parent24fc2c4c5ddc56a678f17170ac4eec4ec570c780 (diff)
parent6b9afb153a82c921c7e80365a4e129c462c0ebad (diff)
Merge github.com:google/grpc into async-api-new
Diffstat (limited to 'src/csharp/GrpcApi/RecordingObserver.cs')
-rw-r--r--src/csharp/GrpcApi/RecordingObserver.cs32
1 files changed, 32 insertions, 0 deletions
diff --git a/src/csharp/GrpcApi/RecordingObserver.cs b/src/csharp/GrpcApi/RecordingObserver.cs
new file mode 100644
index 0000000000..8ba3787905
--- /dev/null
+++ b/src/csharp/GrpcApi/RecordingObserver.cs
@@ -0,0 +1,32 @@
+using System;
+using System.Threading.Tasks;
+using System.Collections.Generic;
+
+namespace math
+{
+ public class RecordingObserver<T> : IObserver<T>
+ {
+ TaskCompletionSource<List<T>> tcs = new TaskCompletionSource<List<T>>();
+ List<T> data = new List<T>();
+
+ public void OnCompleted()
+ {
+ tcs.SetResult(data);
+ }
+
+ public void OnError(Exception error)
+ {
+ tcs.SetException(error);
+ }
+
+ public void OnNext(T value)
+ {
+ data.Add(value);
+ }
+
+ public Task<List<T>> ToList() {
+ return tcs.Task;
+ }
+ }
+}
+