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