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