1
0
Fork 0
LaboratoryProtection/Assets/Plugins/MessagePipe/Runtime/IDistributedPubSub.cs

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);
}
}