Esempio n. 1
0
 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);
 }
Esempio n. 2
0
        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();
        }
Esempio n. 3
0
        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);
        }
Esempio n. 4
0
        public static void Main()
        {
            Listener1 l1 = new Listener1();


            EventClass a1 = new EventClass();

            a1.eventFired("Here we go!");


            a1.DemoEvent += l1.listener1Message;
        }
Esempio n. 5
0
 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);
 }
Esempio n. 6
0
        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"));
        }
Esempio n. 8
0
        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);
        }
Esempio n. 9
0
        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);
        }
Esempio n. 11
0
 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;
 }
Esempio n. 12
0
        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();
        }