public void ContainerTest2() { var data = new SynchSubscribers <IHandler>(); var listener1 = new Listener1(); var listener2 = new Listener2(); data.Register(listener1); data.Register(listener2); var enumerator = data.GetEnumerator(); Assert.AreEqual(true, enumerator.MoveNext()); Assert.AreEqual(listener1.Id, enumerator.Current.Id); Assert.AreEqual(true, enumerator.MoveNext()); Assert.AreEqual(listener2.Id, enumerator.Current.Id); data.Unregister(listener1); data.Register(listener1); enumerator = data.GetEnumerator(); Assert.AreEqual(true, enumerator.MoveNext()); Assert.AreEqual(listener2.Id, enumerator.Current.Id); Assert.AreEqual(true, enumerator.MoveNext()); Assert.AreEqual(listener1.Id, enumerator.Current.Id); }
protected bool BroadMessage(byte [] message) { if (TxEnabled) { if ((DateTime.Now - LastActivityOnLan1) < TimeSpan.FromSeconds(Cfg.SactaProtocol.TimeoutAlive)) { Logger.Trace <ScvManager>($"On {Id} Sending Data on LAN1 ..."); Listener1.Send(Lan1Sendto, message); } else { Logger.Trace <ScvManager>($"On {Id} Discarding data on LAN1 ..."); } if ((DateTime.Now - LastActivityOnLan2) < TimeSpan.FromSeconds(Cfg.SactaProtocol.TimeoutAlive)) { Logger.Trace <ScvManager>($"On {Id} Sending Data on LAN2 ..."); if (Version == 0) { Listener2.Send(Lan2Sendto, message); } else { Listener1.Send(Lan2Sendto, message); } } else { Logger.Trace <ScvManager>($"On {Id} Discarding data on LAN2 ..."); } return(true); } Logger.Trace <ScvManager>($"On {Id} Discarding data on LAN1/LAN2 (TxDisabled) ..."); return(false); }
protected bool BroadMessage(byte[] message) { if (TxEnabled) { Logger.Trace <PsiManager>("On PSI Sending Data on LAN1 ..."); Listener1.Send(Lan1Sendto, message); Logger.Trace <PsiManager>($"On PSI Sending Data on LAN2 ..."); Listener2.Send(Lan2Sendto, message); return(true); } Logger.Trace <PsiManager>($"On PSI Discarding data on LAN1/LAN2 (TxDisabled) ..."); return(false); }
public void ContainerTest3() { var data = new SynchSubscribers <IHandler>(); var listener1 = new Listener1(); var listener2 = new Listener2(); data.Register(listener1); data.Register(listener2); Assert.AreEqual(listener1.Id, data[0].Id); Assert.AreEqual(listener2.Id, data[listener2.Id].Id); }
static void Main() { Console.WriteLine("Please enter time for waiting in sec"); if (!int.TryParse(Console.ReadLine(), out int time)) { Console.WriteLine("It is not a number"); return; } var countdownMessage = new CountdownMessage(); Listener1 listener1 = new Listener1(countdownMessage); Listener2 listener2 = new Listener2(countdownMessage); countdownMessage.SendNewMessageAfterSleep("Just message", time); listener1.Unregister(countdownMessage); listener2.Unregister(countdownMessage); }
public void Adapt_SplatsParameters() { // Arrange var adapter = new ProxyDiagnosticSourceMethodAdapter(); var listener = new Listener2(); var value = new { id = 17, name = "Bill" }; var method = GetMethodInfo <Listener2>(l => l.Listen(0, "")); // Act var func = adapter.Adapt(method, value.GetType()); // Assert Assert.True(func(listener, value)); Assert.Equal(17, listener.Id); Assert.Equal("Bill", listener.Name); }
public void Adapt_SplatsParameters_ExtraParametersGetDefaultValues() { // Arrange var adapter = new ProxyDiagnosticSourceMethodAdapter(); var listener = new Listener2(); var value = new { }; var method = GetMethodInfo <Listener2>(l => l.Listen(0, "")); // Act var func = adapter.Adapt(method, value.GetType()); // Assert Assert.True(func(listener, value)); Assert.Equal(0, listener.Id); Assert.Null(listener.Name); }
public void ContainerTest1() { var data = new SynchSubscribers <IHandler>(); Assert.AreEqual(0, data.Count); var listener1 = new Listener1(); var listener2 = new Listener2(); data.Register(listener1); data.Register(listener2); Assert.AreEqual(2, data.Count); data.Unregister(listener1); Assert.AreEqual(1, data.Count); // existence Assert.AreEqual(true, data.Contains(listener2)); Assert.AreEqual(false, data.Contains(listener1)); Assert.AreEqual(true, data.Exists(listener2.Id)); Assert.AreEqual(false, data.Exists(listener1.Id)); // re-adding + duplicates data.Register(listener1); data.Register(listener1); Assert.AreEqual(2, data.Count); Assert.AreEqual(true, data.Contains(listener1)); Assert.AreEqual(true, data.Exists(listener1.Id)); // access by id Assert.AreEqual(listener1.Id, data.GetById(listener1.Id).Id); Assert.AreEqual(listener2.Id, data.GetById(listener2.Id).Id); var nonexistent = "{8A805C3B-9941-4B82-94D0-E641EBA3881B}"; Assert.AreEqual(null, data.GetById(new Guid(nonexistent))); data.Reset(); Assert.AreEqual(0, data.Count); }
public void Dispose() { if (Listener1 != null) { Listener1.Dispose(); Listener1.NewDataEvent -= OnDataReceived; } if (Listener2 != null) { Listener2.Dispose(); Listener2.NewDataEvent -= OnDataReceived; } if (TickTimer != null) { TickTimer.Enabled = false; TickTimer.Dispose(); TickTimer.Elapsed -= OnTick; } Listener1 = null; TickTimer = null; }
static void Main(string[] args) { var timer = new Clock(); var listener1 = new Listener1(); var listener2 = new Listener2(); listener1.Subscribe(timer); listener2.Subscribe(timer); TimeSpan interval = new TimeSpan(0, 0, 0, 20); Console.WriteLine("All listeners (listener1 and listener2) subscribe."); Console.WriteLine("\nTime of delay:" + interval.Seconds + " seconds. "); timer.StartTimer(interval); Thread.Sleep(2000); Console.WriteLine("\n Liestener2 unsubscribe"); interval = new TimeSpan(0, 0, 0, 30); listener2.Unsubscribe(timer); Console.WriteLine("\nTime of delay:" + interval.Seconds + " seconds. "); timer.StartTimer(interval); Console.Read(); }
public override void Start() { Logger.Info <ScvManager>($"Starting ScvManager for {Id}..."); try { Listener1 = new UdpSocket(Lan1Listen); /** Para seleccionar correctamente la Interfaz de salida de las tramas MCAST */ Listener1.Base.MulticastLoopback = false; Listener1.Base.JoinMulticastGroup(IPAddress.Parse(Cfg.Comm.If1.McastGroup), IPAddress.Parse(Cfg.Comm.If1.Ip)); /** 20180731. Para poder pasar por una red de ROUTERS */ Listener1.Base.Client.SetSocketOption(SocketOptionLevel.IP, SocketOptionName.MulticastTimeToLive, 16); Listener1.NewDataEvent += OnDataReceived; if (Version == 0) { Listener2 = new UdpSocket(Lan2Listen); /** Para seleccionar correctamente la Interfaz de salida de las tramas MCAST */ Listener2.Base.MulticastLoopback = false; Listener2.Base.JoinMulticastGroup(IPAddress.Parse(Cfg.Comm.If2.McastGroup), IPAddress.Parse(Cfg.Comm.If2.Ip)); /** 20180731. Para poder pasar por una red de ROUTERS */ Listener2.Base.Client.SetSocketOption(SocketOptionLevel.IP, SocketOptionName.MulticastTimeToLive, 16); Listener2.NewDataEvent += OnDataReceived; } else { Listener2 = null; Listener1.Base.JoinMulticastGroup(IPAddress.Parse(Cfg.Comm.If2.McastGroup), IPAddress.Parse(Cfg.Comm.If1.Ip)); } Listener1.BeginReceive(); if (Version == 0) { Listener2.BeginReceive(); } TickTimer = new Timer(TimeSpan.FromSeconds(1).TotalMilliseconds); TickTimer.AutoReset = false; TickTimer.Elapsed += OnTick; TickTimer.Enabled = true; GlobalState = SactaState.WaitingSactaActivity; if (Version == 0) { Logger.Info <ScvManager>($"ScvManager for {Id}. Waiting for Sacta Activity on {Cfg.Comm.If1.Ip}:{Cfg.Comm.ListenPort}, {Cfg.Comm.If2.Ip}:{Cfg.Comm.ListenPort} ..."); } else { Logger.Info <ScvManager>($"ScvManager for {Id}. Waiting for Sacta Activity on {Cfg.Comm.If1.Ip}:{Cfg.Comm.ListenPort} ..."); } Logger.Info <PsiManager>($"ScvManager for {Id}. Sectores {Cfg.Sectorization.Sectors} Posiciones {Cfg.Sectorization.Positions}"); PS.Set(ProcessStates.Running); } catch (Exception x) { Logger.Exception <ScvManager>(x, $"On {Cfg.Id}"); Dispose(); PS.SignalFatal <ScvManager>($"Excepcion en el Arranque {x}", History()); } }
static void Main(string[] args) { //1 /* * int[] arr = {4,8,12,16,20,24,2,6,10 }; * //int[] arr = null; * long EuclidtimeElapsed=0, SteintimeElapsed=0; * * try * { * int multiEuclidGCD = CalcGCD.Calc(CalcGCD.multiEuclidGCD, out EuclidtimeElapsed, arr); * Console.WriteLine("Euclid's algorithm result: {0}; Timer result: {1}", multiEuclidGCD, EuclidtimeElapsed); * } * catch (NullReferenceException e) * { * Console.WriteLine(e); * } * * try * { * int multiSteinGCD = CalcGCD.Calc(CalcGCD.multiSteinGCD,out SteintimeElapsed, arr); * Console.WriteLine("Stein's algorithm result: {0}; Timer result: {1}", multiSteinGCD, SteintimeElapsed); * * } * catch (NullReferenceException e) * { * Console.WriteLine(e); * } */ //Task2 /* * int[,] array = { { 26, 22, 14 }, { 23, 5, 13 }, { 44, 8, 11 } }; * Console.WriteLine("Input array"); * BubbleSortTask.Display(array); * * SumSort ss = new SumSort(true); * Sorter sorter = new Sorter(ss); * * Console.WriteLine("\r\nIn order of decreasing sums of elements of rows of the matrix"); * sorter.ChangeSortType(new SumSort(false)); * array = sorter.Sort(array); * BubbleSortTask.Display(array); * * Console.WriteLine("\r\nIn order of increasing sums of elements of rows of the matrix"); * sorter.ChangeSortType(new SumSort(true)); * array = sorter.Sort(array); * BubbleSortTask.Display(array); * * Console.WriteLine("\r\nIn order of decreasing max element of rows of the matrix"); * sorter.ChangeSortType(new MaxSort(false)); * array = sorter.Sort(array); * BubbleSortTask.Display(array); * * Console.WriteLine("\r\nIn order of increasing max element of rows of the matrix"); * sorter.ChangeSortType(new MaxSort(true)); * array = sorter.Sort(array); * BubbleSortTask.Display(array); * * Console.WriteLine("\r\nIn order of decreasing min element of rows of the matrix"); * sorter.ChangeSortType(new MinSort(false)); * array = sorter.Sort(array); * BubbleSortTask.Display(array); * * Console.WriteLine("\r\nIn order of increasing min element of rows of the matrix"); * sorter.ChangeSortType(new MinSort(true)); * array = sorter.Sort(array); * BubbleSortTask.Display(array); * Console.ReadKey(); */ //3 var msgManager = new Countdown(); var listener = new Listener(); listener.Register(msgManager); msgManager.SendNewMsg("Hi", 3000); listener.Unregister(msgManager); Console.WriteLine(); var listener2 = new Listener2(); listener2.Register(msgManager); msgManager.SendNewMsg("Hi there", 2000); listener2.Unregister(msgManager); Console.ReadLine(); }