diff options
author | Atsushi Eno <atsushieno@veritas-vos-liberabit.com> | 2013-01-22 12:25:22 +0400 |
---|---|---|
committer | Atsushi Eno <atsushieno@veritas-vos-liberabit.com> | 2013-01-22 12:25:22 +0400 |
commit | cde9fc6a8fe569203cb991121a35c2a9c7f4c420 (patch) | |
tree | 8633a637be4973b221d9c7e9378af5e0a08b5670 /Rx/NET/Source/Tests.System.Reactive/Tests/MySubject.cs | |
parent | 8911e1d3f169a0e378b4e237926269d9218c8fd3 (diff) |
import 2b5dbddd740b, new directory structure in the original rx.
Diffstat (limited to 'Rx/NET/Source/Tests.System.Reactive/Tests/MySubject.cs')
-rw-r--r-- | Rx/NET/Source/Tests.System.Reactive/Tests/MySubject.cs | 53 |
1 files changed, 53 insertions, 0 deletions
diff --git a/Rx/NET/Source/Tests.System.Reactive/Tests/MySubject.cs b/Rx/NET/Source/Tests.System.Reactive/Tests/MySubject.cs new file mode 100644 index 0000000..b1dd907 --- /dev/null +++ b/Rx/NET/Source/Tests.System.Reactive/Tests/MySubject.cs @@ -0,0 +1,53 @@ +// Copyright (c) Microsoft Open Technologies, Inc. All rights reserved. See License.txt in the project root for license information. + +using System; +using System.Collections.Generic; +using System.Reactive.Disposables; +using System.Reactive.Subjects; + +namespace ReactiveTests.Tests +{ + class MySubject : ISubject<int> + { + private Dictionary<int, IDisposable> _disposeOn = new Dictionary<int, IDisposable>(); + + public void DisposeOn(int value, IDisposable disposable) + { + _disposeOn[value] = disposable; + } + + private IObserver<int> _observer; + + public void OnNext(int value) + { + _observer.OnNext(value); + + IDisposable disconnect; + if (_disposeOn.TryGetValue(value, out disconnect)) + disconnect.Dispose(); + } + + public void OnError(Exception exception) + { + _observer.OnError(exception); + } + + public void OnCompleted() + { + _observer.OnCompleted(); + } + + public IDisposable Subscribe(IObserver<int> observer) + { + _subscribeCount++; + _observer = observer; + return Disposable.Create(() => { _disposed = true; }); + } + + private int _subscribeCount; + private bool _disposed; + + public int SubscribeCount { get { return _subscribeCount; } } + public bool Disposed { get { return _disposed; } } + } +} |