Esempio n. 1
0
        static void Main(string[] args)
        {
            XmlConfigurator.Configure();

            var logger        = LogManager.GetLogger("SampleTextLogger");
            var loggerService = new LoggerService(logger);


            var quadraticProducer = new QuadraticCurvePointsProducer(loggerService);
            var cubicProducer     = new CubicCurvePointsProducer(loggerService);
            var squareProducer    = new SquareCurvePointsProducer(loggerService);
            var badProducer       = new BadPointsProducer(loggerService);
            var randomProducer    = new RandomPointProducer(loggerService);

            var client = new Client();

            badProducer.onBadPointProduced += client.onPointReceive;
            badProducer.OnEqualZero        += client.onPointReceive;
            badProducer.OnMoreTenYProduced += client.onPointReceive;
            var pointProducers = new List <IPointProducer>()
            {
                quadraticProducer /*, cubicProducer, squareProducer,*/, badProducer
            };

            Console.WriteLine("Press Enter for escape log");
            System.Threading.Thread.Sleep(2000);

            Registry registry = new Registry(pointProducers);

            new Logic().Run(registry);
            var sinCurveProducer      = new SinCurvePointsProducer(loggerService);
            var disposePointProducers = new List <SinCurvePointsProducer>()
            {
                sinCurveProducer
            };
            RegistryWithDispose disposeRegistry = new RegistryWithDispose(disposePointProducers);

            new Logic().RunWithDispose(disposeRegistry);


            Console.WriteLine("Press enter to run GC, step 1:");
            Console.ReadLine();
            GC.Collect();
            Console.WriteLine("Press enter to run GC, step 1:done");
            Console.ReadLine();
        }
Esempio n. 2
0
        static void Main(string[] args)
        {
            XmlConfigurator.Configure();
            var logger        = LogManager.GetLogger("SampleTextLogger");
            var loggerService = new LoggerService(logger);

            var quadraticProducer = new CustomPointsProducer(x => x * x, -3, 1);
            var scalingProducer   = new CustomPointsProducer(x => x * 2, -3, 1);
            var cubicBadProducer  = new BadPointsProducer(loggerService, x => x * x * x, -3, (decimal)0.5, x => x % 2 == 0);

            ProducerCancelingManager manager = new ProducerCancelingManager();

            manager.Add(quadraticProducer, 'q');
            manager.Add(scalingProducer, 'w');
            manager.Add(cubicBadProducer, 'e');

            Client client = new Client("BadProducerSubscriber");

            client.StartListenToBadProducer(cubicBadProducer);

            Task.Run(() =>
            {
                quadraticProducer.Run((point) => loggerService.Info($"Quadratic Function {point}"));
            });
            Task.Run(() =>
            {
                scalingProducer.Run((point) => loggerService.Info($"Scaling Function {point}"));
            });
            Task.Run(() =>
            {
                cubicBadProducer.Run((point) => loggerService.Info($"Cubic Function {point}"));
            });

            ConsoleKeyInfo key = new ConsoleKeyInfo();

            while (key.Key != ConsoleKey.Escape)
            {
                key = Console.ReadKey(true);
                manager.CancelProducer(key);
            }
        }
Esempio n. 3
0
 public void StartListenToBadProducer(BadPointsProducer producer)
 {
     producer.OnGoodPointProduced += this.Producer_OnGoodPointProduced;
 }