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); }
public static void Main(string[] args) { var timer = new Timer(); var firstListener = new Listener1(1); var secondListener = new Listener2(2); WriteLine("1. Add 2 listiners"); timer.Dispatcher += firstListener.OnTimerTimeout; timer.Dispatcher += secondListener.OnTimerTimeout; timer.RunIfCan(3); System.Threading.Thread.Sleep(7777); WriteLine("2. Remove 2 listiners"); timer.Dispatcher -= firstListener.OnTimerTimeout; timer.Dispatcher -= secondListener.OnTimerTimeout; timer.RunIfCan(3); System.Threading.Thread.Sleep(7777); WriteLine("3. Add 1 listiner"); timer.Dispatcher += firstListener.OnTimerTimeout; timer.RunIfCan(3); System.Threading.Thread.Sleep(7777); ReadKey(); }
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); }
public static void Main() { Listener1 l1 = new Listener1(); EventClass a1 = new EventClass(); a1.eventFired("Here we go!"); a1.DemoEvent += l1.listener1Message; }
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); }
public void Adapt_ReturnsFalseForTypeNotMatching() { // Arrange var adapter = new ProxyDiagnosticSourceMethodAdapter(); var listener = new Listener1(); var method = GetMethodInfo <Listener1>(l => l.Listen()); // Act var func = adapter.Adapt(method, new { }.GetType()); // Assert Assert.False(func(listener, "hello")); }
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 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 Adapt_Throws_ForSameNamedPropertiesWithDifferentCasing() { // Arrange var adapter = new ProxyDiagnosticSourceMethodAdapter(); var listener = new Listener1(); var method = GetMethodInfo <Listener2>(l => l.Listen(5, "joey")); var value = new { Id = 5, id = 17 }; var type = value.GetType(); // Act var ex = Assert.Throws <InvalidOperationException>(() => adapter.Adapt(method, type)); // Assert Assert.Equal( $"Proxy method generation doesn't support types with properties that vary only by case. " + $"The type '{type.FullName}' defines multiple properties named 'id' that vary only by case.", ex.Message); }
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(); }