Removed ISubscriber

This commit is contained in:
Alexander Kozachenko 2023-12-08 02:26:41 +03:00
parent fed70eca3e
commit f3b3fa6780
5 changed files with 11 additions and 18 deletions

View file

@ -2,7 +2,7 @@
Implements a message broker with ability to build a pipeline of listeners.
The project consists of:
- observer-related interfaces,
- A publisher (see `PipelineMessagePublisher`).
- observer-related interfaces [here](/src/Contracts/).
- `PipelineMessagePublisher` [here](/src/Publishers/PipelineMessagePublisher.cs).
- [Translators](/docs/Translating.md) for messages.
- [Filtering](/docs/Filtering.md) for messages.

View file

@ -2,11 +2,10 @@ namespace ProSol.Messaging;
public static class PublishHelper
{
[Obsolete]
public static void Publish<TMessage>(
this IPublisher<TMessage> publisher,
TMessage message,
params ISubscriber[] subscribers)
params IPipelineSubscriber<TMessage>[] subscribers)
{
if (subscribers.Length == 0)
{
@ -17,11 +16,10 @@ public static class PublishHelper
publisher.Publish(message, subscribers[0], next);
}
[Obsolete]
public static void Publish<TMessage>(
this IPublisher<TMessage> publisher,
TMessage message,
ISubscriber subscriber,
IPipelineSubscriber<TMessage> subscriber,
NextDelegate next)
{
switch (subscriber)

View file

@ -5,7 +5,7 @@ public delegate void NextDelegate();
/// <summary>
/// An Observer/Subscriber object with pipeline support.
/// </summary>
public interface IPipelineSubscriber<TMessage> : ISubscriber
public interface IPipelineSubscriber<TMessage>
{
/// <summary>
/// Represents a reaction on a message.
@ -16,4 +16,9 @@ public interface IPipelineSubscriber<TMessage> : ISubscriber
/// - For more details about ASP.NET pipeline, see https://learn.microsoft.com/en-us/aspnet/core/fundamentals/middleware/?view=aspnetcore-8.0
/// </remarks>
void OnNext(TMessage message, NextDelegate next);
/// <summary>
/// Finalizes a subscriber.
/// </summary>
void OnCompleted();
}

View file

@ -1,10 +0,0 @@
namespace ProSol.Messaging;
public interface ISubscriber
{
/// <summary>
/// Finalizes a subscriber.
/// </summary>
void OnCompleted();
}

View file

@ -3,7 +3,7 @@ namespace ProSol.Messaging.Tests.Common;
public class TestPublisher<TMessage>(IEnumerable<TMessage> messages) : IPublisher<TMessage>
{
readonly Queue<TMessage> messages = new(messages);
ISubscriber? subscriber;
IPipelineSubscriber<TMessage>? subscriber;
public void PublishAll()
{