/
vshmidt
/
masstransit
Обзор
Документация
Войти
/
vshmidt
/
masstransit
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
develop
src/MassTransit/Util/ObservableObserver.cs
53 строки
1 KB
Chris Patterson
Integration of all external packages into MassTransit, split out into Abstractions, Middleware, and the core MassTransit assembly.
22 янв 2022, 18:24
22 янв 2022, 18:24
b5b4f50
Код
Авторство
О чём код?
namespace MassTransit.Util { using System; using System.Threading.Tasks; public class ObservableObserver<T> : IObservable<T>, IObserver<T> { readonly Connectable<IObserver<T>> _observers; public ObservableObserver() { _observers = new Connectable<IObserver<T>>(); } public IDisposable Subscribe(IObserver<T> observer) { return _observers.Connect(observer); } public void OnNext(T value) { _observers.ForEachAsync(x => { x.OnNext(value); return Task.CompletedTask; }); } public void OnError(Exception error) { _observers.ForEachAsync(x => { x.OnError(error); return Task.CompletedTask; }); } public void OnCompleted() { _observers.ForEachAsync(x => { x.OnCompleted(); return Task.CompletedTask; }); } } }