// sync handler public static ValueTask <IAsyncDisposable> SubscribeAsync <TKey, TMessage>(this IDistributedSubscriber <TKey, TMessage> subscriber, TKey key, Action <TMessage> handler, CancellationToken cancellationToken = default) { return(SubscribeAsync(subscriber, key, handler, Array.Empty <MessageHandlerFilter <TMessage> >(), cancellationToken)); }
public static UniTask <IUniTaskAsyncDisposable> SubscribeAsync <TKey, TMessage>(this IDistributedSubscriber <TKey, TMessage> subscriber, TKey key, Func <TMessage, CancellationToken, UniTask> handler, Func <TMessage, bool> predicate, AsyncMessageHandlerFilter <TMessage>[] filters, CancellationToken cancellationToken = default) { var predicateFilter = new AsyncPredicateFilter <TMessage>(predicate); filters = (filters.Length == 0) ? new[] { predicateFilter } : Append(filters, predicateFilter); return(subscriber.SubscribeAsync(key, new AnonymousAsyncMessageHandler <TMessage>(handler), filters, cancellationToken)); }
public static UniTask <IUniTaskAsyncDisposable> SubscribeAsync <TKey, TMessage>(this IDistributedSubscriber <TKey, TMessage> subscriber, TKey key, Func <TMessage, CancellationToken, UniTask> handler, AsyncMessageHandlerFilter <TMessage>[] filters, CancellationToken cancellationToken = default) { return(subscriber.SubscribeAsync(key, new AnonymousAsyncMessageHandler <TMessage>(handler), filters, cancellationToken)); }
public static UniTask <IUniTaskAsyncDisposable> SubscribeAsync <TKey, TMessage>(this IDistributedSubscriber <TKey, TMessage> subscriber, TKey key, Func <TMessage, CancellationToken, UniTask> handler, Func <TMessage, bool> predicate, CancellationToken cancellationToken = default) { return(SubscribeAsync(subscriber, key, handler, predicate, Array.Empty <AsyncMessageHandlerFilter <TMessage> >(), cancellationToken)); }
public static ValueTask <IAsyncDisposable> SubscribeAsync <TKey, TMessage>(this IDistributedSubscriber <TKey, TMessage> subscriber, TKey key, Action <TMessage> handler, MessageHandlerFilter <TMessage>[] filters, CancellationToken cancellationToken = default) { return(subscriber.SubscribeAsync(key, new AnonymousMessageHandler <TMessage>(handler), filters, cancellationToken)); }