Exemple #1
0
        public static ValueTask <IDisposable> SubscribeAsync <TMessage>(this IBufferedAsyncSubscriber <TMessage> subscriber, Func <TMessage, CancellationToken, ValueTask> handler, Func <TMessage, bool> predicate, AsyncMessageHandlerFilter <TMessage>[] filters, CancellationToken cancellationToken = default)
        {
            var predicateFilter = new AsyncPredicateFilter <TMessage>(predicate);

            filters = (filters.Length == 0)
                ? new[] { predicateFilter }
                : ArrayUtil.ImmutableAdd(filters, predicateFilter);

            return(subscriber.SubscribeAsync(new AnonymousAsyncMessageHandler <TMessage>(handler), filters, cancellationToken));
        }
Exemple #2
0
        public static async ValueTask <TMessage> FirstAsync <TMessage>(this IBufferedAsyncSubscriber <TMessage> subscriber, CancellationToken cancellationToken, Func <TMessage, bool> predicate, params AsyncMessageHandlerFilter <TMessage>[] filters)
        {
            var predicateFilter = new AsyncPredicateFilter <TMessage>(predicate);

            filters = (filters.Length == 0)
                ? new[] { predicateFilter }
                : ArrayUtil.ImmutableAdd(filters, predicateFilter);

            return(await new ValueTask <TMessage>(await FirstAsyncAsyncBufferedMessageHandler <TMessage> .CreateAsync(subscriber, cancellationToken, filters), 0));
        }
Exemple #3
0
 public static async ValueTask <TMessage> FirstAsync <TMessage>(this IBufferedAsyncSubscriber <TMessage> subscriber, CancellationToken cancellationToken, params AsyncMessageHandlerFilter <TMessage>[] filters)
 {
     return(await new ValueTask <TMessage>(await FirstAsyncAsyncBufferedMessageHandler <TMessage> .CreateAsync(subscriber, cancellationToken, filters), 0));
 }
Exemple #4
0
 public BufferedAsyncEnumerableAsyncSubscriber(IBufferedAsyncSubscriber <TMessage> subscriber, AsyncMessageHandlerFilter <TMessage>[] filters)
 {
     this.subscriber = subscriber;
     this.filters    = filters;
 }
Exemple #5
0
 public static IAsyncEnumerable <TMessage> AsAsyncEnumerable <TMessage>(this IBufferedAsyncSubscriber <TMessage> subscriber, params AsyncMessageHandlerFilter <TMessage>[] filters)
 {
     return(new BufferedAsyncEnumerableAsyncSubscriber <TMessage>(subscriber, filters));
 }
Exemple #6
0
 public static ValueTask <IDisposable> SubscribeAsync <TMessage>(this IBufferedAsyncSubscriber <TMessage> subscriber, Func <TMessage, CancellationToken, ValueTask> handler, Func <TMessage, bool> predicate, CancellationToken cancellationToken = default)
 {
     return(SubscribeAsync(subscriber, handler, predicate, Array.Empty <AsyncMessageHandlerFilter <TMessage> >(), cancellationToken));
 }
Exemple #7
0
 public static ValueTask <IDisposable> SubscribeAsync <TMessage>(this IBufferedAsyncSubscriber <TMessage> subscriber, Func <TMessage, CancellationToken, ValueTask> handler, AsyncMessageHandlerFilter <TMessage>[] filters, CancellationToken cancellationToken = default)
 {
     return(subscriber.SubscribeAsync(new AnonymousAsyncMessageHandler <TMessage>(handler), filters, cancellationToken));
 }