diff --git a/README.md b/README.md index 5a03924..dc83d5e 100644 --- a/README.md +++ b/README.md @@ -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. \ No newline at end of file diff --git a/src/Contracts/Publishers/PublishHelper.cs b/src/Contracts/Publishers/PublishHelper.cs index b136345..df4cd0f 100644 --- a/src/Contracts/Publishers/PublishHelper.cs +++ b/src/Contracts/Publishers/PublishHelper.cs @@ -2,11 +2,10 @@ namespace ProSol.Messaging; public static class PublishHelper { - [Obsolete] public static void Publish( this IPublisher publisher, TMessage message, - params ISubscriber[] subscribers) + params IPipelineSubscriber[] subscribers) { if (subscribers.Length == 0) { @@ -17,11 +16,10 @@ public static class PublishHelper publisher.Publish(message, subscribers[0], next); } - [Obsolete] public static void Publish( this IPublisher publisher, TMessage message, - ISubscriber subscriber, + IPipelineSubscriber subscriber, NextDelegate next) { switch (subscriber) diff --git a/src/Contracts/Subscribers/IPipelineSubscriber.cs b/src/Contracts/Subscribers/IPipelineSubscriber.cs index f8c4c3a..15a5251 100644 --- a/src/Contracts/Subscribers/IPipelineSubscriber.cs +++ b/src/Contracts/Subscribers/IPipelineSubscriber.cs @@ -5,7 +5,7 @@ public delegate void NextDelegate(); /// /// An Observer/Subscriber object with pipeline support. /// -public interface IPipelineSubscriber : ISubscriber +public interface IPipelineSubscriber { /// /// Represents a reaction on a message. @@ -16,4 +16,9 @@ public interface IPipelineSubscriber : ISubscriber /// - For more details about ASP.NET pipeline, see https://learn.microsoft.com/en-us/aspnet/core/fundamentals/middleware/?view=aspnetcore-8.0 /// void OnNext(TMessage message, NextDelegate next); + + /// + /// Finalizes a subscriber. + /// + void OnCompleted(); } \ No newline at end of file diff --git a/src/Contracts/Subscribers/ISubscriber.cs b/src/Contracts/Subscribers/ISubscriber.cs deleted file mode 100644 index e8c703a..0000000 --- a/src/Contracts/Subscribers/ISubscriber.cs +++ /dev/null @@ -1,10 +0,0 @@ -namespace ProSol.Messaging; - -public interface ISubscriber -{ - /// - /// Finalizes a subscriber. - /// - void OnCompleted(); -} - diff --git a/tests/Common/TestPublisher.cs b/tests/Common/TestPublisher.cs index ede2029..c4dedd8 100644 --- a/tests/Common/TestPublisher.cs +++ b/tests/Common/TestPublisher.cs @@ -3,7 +3,7 @@ namespace ProSol.Messaging.Tests.Common; public class TestPublisher(IEnumerable messages) : IPublisher { readonly Queue messages = new(messages); - ISubscriber? subscriber; + IPipelineSubscriber? subscriber; public void PublishAll() {