You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

38 lines
917 B

10 months ago
using ConsoleApp1.intf;
namespace ConsoleApp1.pubsub.generics
{
internal class Publisher<T> : IPublisher<T>
where T : IMessage
{
public List<ISubscriber<T>> _subscribers = new List<ISubscriber<T>>();
public void Publish(T message)
{
if (string.IsNullOrEmpty(message?.Text))
{
return;
}
if (_subscribers.Count == 0)
{
return;
}
// ...
// ...
// ...
foreach (ISubscriber<T>? subscriber in _subscribers)
{
if (subscriber == null)
{
continue;
}
subscriber?.FireEvent(message);
}
}
public void Subscribe(ISubscriber<T> subscriber)
{
_subscribers.Add(subscriber);
}
}
}