Пример #1
0
        public async Task Run()
        {
            var ioService   = new IoServiceScheduler();
            var threadPool  = new IoServiceThreadPoolScheduler(ioService);
            var proxyEngine = new ProxyEngine(threadPool);

            ILibraryActor library = new LibraryActor();

            library = proxyEngine.CreateProxy(library);

            IResultProcessorActor resultProcessorActor = new PrintTopWordsProcessorActor();

            resultProcessorActor = proxyEngine.CreateProxy(resultProcessorActor);

            ICountWordAggregateActor aggregateWordCountActor = new WordCountAggregateActor(resultProcessorActor, BookLinesParserActor.NUMBER_OF_CONSUMERS);

            aggregateWordCountActor = proxyEngine.CreateProxy(aggregateWordCountActor);

            IBookLinesParserActor linesParserActor = new BookLinesParserActor(library, new BookLineConsumerFactory(aggregateWordCountActor, proxyEngine));

            linesParserActor = proxyEngine.CreateProxy(linesParserActor);

            library.AddBook(BOOK_NAME);

            await linesParserActor.ProcessLastBook().ConfigureAwait(false);


            linesParserActor.Complete();

            await resultProcessorActor.Completed;
        }
Пример #2
0
        public AsyncPlayerTest()
        {
            var ioServiceScheduler = new IoServiceScheduler();

            var threadPoolScheduler    = new IoServiceThreadPoolScheduler(ioServiceScheduler, 1);
            var externalProxyScheduler = new ProxyScheduler(threadPoolScheduler);

            m_proxyEngine = new ProxyEngine(threadPoolScheduler);
            createActors();
        }
Пример #3
0
        private static void runSimpleUploaderActor()
        {
            const int NUMBER_OF_THREADS = 1;
            var       ioService         = new IoServiceScheduler();
            var       primaryScheduler  = new IoServiceThreadPoolScheduler(ioService, NUMBER_OF_THREADS);
            var       proxyScheduler    = new ProxyScheduler(primaryScheduler);

            var proxyEngine         = new ProxyEngine(primaryScheduler);
            var simpleUploaderActor = new SimpleUploaderActor();

            var uploaderActorProxy = proxyEngine.CreateProxy <IService>(simpleUploaderActor);

            runSimpleUploader(uploaderActorProxy);
        }
Пример #4
0
        static void Main(string[] args)
        {
            ServicePointManager.ServerCertificateValidationCallback = TrustCertificate;
            var harFile = string.Format("SharpProxy.{0}.har", DateTime.Now.ToString("yyyyMMddh.hhmmss"));

            harFile = "SharpProxy.har";
            var inspector = new HarProxyInspector();

            _proxy = ProxyEngine.New(proxyInspector: inspector);
            Task.Run((Action)MakeRequest);
            while (!_done)
            {
                //Console.Write(".");
                Thread.Sleep(100);
            }
            using (var fs = File.Open(harFile, FileMode.Create))
                inspector.SaveTo(fs);
            Console.WriteLine();
            Console.WriteLine("CurDir: " + Environment.CurrentDirectory);
            Console.WriteLine("Done!");
            Console.ReadKey();
        }
Пример #5
0
 public BookLineConsumerFactory(ICountWordAggregateActor aggregateActor, ProxyEngine proxyEngine)
 {
     m_aggregateActor = aggregateActor ?? throw new ArgumentNullException(nameof(aggregateActor));
     m_proxyEngine    = proxyEngine ?? throw new ArgumentNullException(nameof(proxyEngine));
 }