using System; using System.Collections.Generic; using System.Linq; using System.Net; using System.Net.Sockets; using System.Text; using System.Threading; using System.Timers; namespace FicTestConsole { class UIbroadcasterlistener { private System.Timers.Timer UITimeout; public static DateTime UIHB; // A list of clients that are interested in knowing about updates in state of browser. private List<ibrowserstatelistener> browserStateListeners = new List<ibrowserstatelistener>(); public UIbroadcasterlistener() { this.UITimeout = new System.Timers.Timer(1000); this.UITimeout.Elapsed += _UITimeoutElapsed; UITimeout.Start(); } public void _UITimeoutElapsed(object source, ElapsedEventArgs e) { UIHB = DateTime.Now; NotifyListeners(UIHB); Console.WriteLine("IN UIbroadcasterlistener UIHB : " + UIHB.ToString()); } public void AddUIBroadcastListener(IBrowserStateListener listener) { this.browserStateListeners.Add(listener); } private void NotifyListeners(DateTime param) { foreach (IBrowserStateListener listener in this.browserStateListeners) { listener.OnNewState(param); } } } class broadcaster:IBrowserStateListener { private DateTime UIHrtBt; public broadcaster() { } public void OnNewState(DateTime param) { UIHrtBt = param; Console.WriteLine("In broadcaster UIHrtBt =" + UIHrtBt.ToString()); } } class Coordinator { private UIbroadcasterlistener uiBroadcastListener = new UIbroadcasterlistener(); private broadcaster obj = new broadcaster(); public Coordinator() { } } public interface IBrowserStateListener { void OnNewState(DateTime param); } }
var
This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)