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.

68 lines
1.9 KiB

using System.Collections.ObjectModel;
using System.Diagnostics;
using System.Windows.Forms;
using BroadcastListener.Interfaces;
namespace BroadcastListener.Classes
{
public class Broadcaster
{
private readonly Collection<IMessageListener1> _listeners =
new Collection<IMessageListener1>();
/// <summary>
/// Send message
/// </summary>
/// <param name="message">Message</param>
/// <param name="sender"></param>
/// <remarks></remarks>
[DebuggerStepThrough()]
public void Broadcast(string message, SenderInfo sender)
{
foreach (IMessageListener1 listener in _listeners)
{
listener.OnListen(message, sender);
}
}
[DebuggerStepThrough()]
/// <summary>
/// Add a Listener to the Collection of Listeners
/// </summary>
/// <param name="listener"></param>
public void AddListener(IMessageListener1 listener)
{
_listeners.Add(listener);
}
/// <summary>
/// Remove a Listener from the collection
/// </summary>
/// <param name="listener"></param>
public void RemoveListener(IMessageListener1 listener)
{
for (int index = 0; index < _listeners.Count; index++)
{
if ( _listeners[index].Equals(listener) )
{
_listeners.Remove(_listeners[index]);
}
}
}
}
public class SenderInfo
{
public string SenderName { get; set; }
public string Function { get; set; }
public string Details { get; set; }
public SenderInfo(string SenderName, string Funtion, string Details)
{
this.SenderName= SenderName;
this.Function= Funtion;
this.Details= Details;
}
}
}