Esempio n. 1
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. 2
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. 3
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. 4
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);
        }
Esempio n. 5
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);
        }
        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);
        }
Esempio n. 8
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);
        }
Esempio n. 9
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. 10
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();
        }
Esempio n. 11
0
        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());
            }
        }
Esempio n. 12
0
        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();
        }