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.

37 lines
932 B

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