Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mono/rx.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'Rx.NET/System.Reactive.Experimental/Reactive/Internal/BinaryObserver.cs')
-rw-r--r--Rx.NET/System.Reactive.Experimental/Reactive/Internal/BinaryObserver.cs34
1 files changed, 34 insertions, 0 deletions
diff --git a/Rx.NET/System.Reactive.Experimental/Reactive/Internal/BinaryObserver.cs b/Rx.NET/System.Reactive.Experimental/Reactive/Internal/BinaryObserver.cs
new file mode 100644
index 0000000..19cdb2d
--- /dev/null
+++ b/Rx.NET/System.Reactive.Experimental/Reactive/Internal/BinaryObserver.cs
@@ -0,0 +1,34 @@
+// Copyright (c) Microsoft Open Technologies, Inc. All rights reserved. See License.txt in the project root for license information.
+
+namespace System.Reactive
+{
+ class BinaryObserver<TLeft, TRight> : IObserver<Either<Notification<TLeft>, Notification<TRight>>>
+ {
+ public BinaryObserver(IObserver<TLeft> leftObserver, IObserver<TRight> rightObserver)
+ {
+ LeftObserver = leftObserver;
+ RightObserver = rightObserver;
+ }
+
+ public BinaryObserver(Action<Notification<TLeft>> left, Action<Notification<TRight>> right)
+ : this(left.ToObserver(), right.ToObserver())
+ {
+ }
+
+ public IObserver<TLeft> LeftObserver { get; private set; }
+ public IObserver<TRight> RightObserver { get; private set; }
+
+ void IObserver<Either<Notification<TLeft>, Notification<TRight>>>.OnNext(Either<Notification<TLeft>, Notification<TRight>> value)
+ {
+ value.Switch(left => left.Accept(LeftObserver), right => right.Accept(RightObserver));
+ }
+
+ void IObserver<Either<Notification<TLeft>, Notification<TRight>>>.OnError(Exception exception)
+ {
+ }
+
+ void IObserver<Either<Notification<TLeft>, Notification<TRight>>>.OnCompleted()
+ {
+ }
+ }
+}