forked from zxl/LaboratoryProtection
19 lines
1.0 KiB
C#
19 lines
1.0 KiB
C#
using System;
|
|
using System.Threading;
|
|
using Cysharp.Threading.Tasks;
|
|
|
|
namespace MessagePipe
|
|
{
|
|
public interface IDistributedPublisher<TKey, TMessage>
|
|
{
|
|
UniTask PublishAsync(TKey key, TMessage message, CancellationToken cancellationToken = default);
|
|
}
|
|
|
|
public interface IDistributedSubscriber<TKey, TMessage>
|
|
{
|
|
UniTask<IUniTaskAsyncDisposable> SubscribeAsync(TKey key, IMessageHandler<TMessage> handler, CancellationToken cancellationToken = default);
|
|
UniTask<IUniTaskAsyncDisposable> SubscribeAsync(TKey key, IMessageHandler<TMessage> handler, MessageHandlerFilter<TMessage>[] filters, CancellationToken cancellationToken = default);
|
|
UniTask<IUniTaskAsyncDisposable> SubscribeAsync(TKey key, IAsyncMessageHandler<TMessage> handler, CancellationToken cancellationToken = default);
|
|
UniTask<IUniTaskAsyncDisposable> SubscribeAsync(TKey key, IAsyncMessageHandler<TMessage> handler, AsyncMessageHandlerFilter<TMessage>[] filters, CancellationToken cancellationToken = default);
|
|
}
|
|
} |