Ejemplo n.º 1
0
        public static async Task StartAsync(int port)
        {
            IPAddress localAddr = await EndpointUtils.GetIPAsync();

            IExpiryProvider expiryProvider = new StorageExpiryProvider();
            IStorage        storage        = new InMemoryStorage(expiryProvider);

            IRequestProcessor requestProcessor = new RequestProcessor(storage);
            IProcessor        processor        = new SocketProcessor();
            IListener         server           = new Listener(localAddr, port, processor, requestProcessor);

            server.Start();

            var reset = new ManualResetEventSlim();

            Console.CancelKeyPress += (sender, e) =>
            {
                reset.Set();
            };

            reset.Wait();

            // dispose components
            storage.Dispose();
            server.Dispose();
        }
Ejemplo n.º 2
0
        public void CanClear()
        {
            IExpiryProvider expiryProvider = Substitute.For <IExpiryProvider>();
            IStorage        storage        = new InMemoryStorage(expiryProvider);

            storage.AddOrUpdate("first", DateTime.MaxValue, new byte[0]);
            storage.AddOrUpdate("second", DateTime.MaxValue, new byte[0]);

            storage.Dispose();
            Assert.Equal(storage.Count, 0);
        }
Ejemplo n.º 3
0
        public static void Start(SettingsArgs settings, LoggingConfiguration config)
        {
            LogManager.Configuration = config;


            IStorage storage = new InMemoryStorage();

            IRequestProcessor requestProcessor = new RequestProcessor(storage);
            ISocketProcessor  processor        = new SocketProcessor();
            IListener         server           = new Listener(settings, processor, requestProcessor);

            server.Start();
            IsWorking = true;

            Console.CancelKeyPress += (sender, args) => Stop();

            _cancelEvent.Wait();
            _cancelEvent.Reset();

            // dispose components
            storage.Dispose();
            server.Dispose();
        }