Exemplo n.º 1
0
        public override Task <DefectsResponse> GetDefects(DefectsRequest request, ServerCallContext context)
        {
            var wafer        = new Query().GetWafer(request.WaferId);
            var defsResponse = new DefectsResponse();

            foreach (var def in wafer.Defects)
            {
                defsResponse.Defects.Add(CreateDefect(def));
            }
            return(Task.FromResult(defsResponse));
        }
Exemplo n.º 2
0
        public override Task <DefectsResponse> GetDefects(DefectsRequest request, ServerCallContext context)
        {
            var sw = new Stopwatch();

            sw.Start();
            var wafer        = new Query().GetWafer(request.WaferId);
            var defsResponse = new DefectsResponse();
            var defCount     = wafer.Defects.Count;

            for (var idx = 0; idx < defCount; idx++)
            {
                defsResponse.Defects.Add(CreateDefect(wafer.Defects[idx]));
            }
            sw.Stop();
            Console.WriteLine($"Data preparation time {sw.ElapsedMilliseconds} ms");
            return(Task.FromResult(defsResponse));
        }
Exemplo n.º 3
0
        private void ProduceDefects(int waferId, BlockingCollection <DefectsResponse> sink)
        {
            var blockSize    = 100000;
            var wafer        = new Query().GetWafer(waferId);
            var defsResponse = new DefectsResponse();
            var defCount     = wafer.Defects.Count;

            for (var idx = 0; idx < defCount; idx++)
            {
                if (idx % blockSize == 0)
                {
                    sink.Add(defsResponse);
                    Console.WriteLine($"added {defsResponse.Defects.Count} to sink");
                    defsResponse = new DefectsResponse();
                }
                defsResponse.Defects.Add(CreateDefect(wafer.Defects[idx]));
            }
            sink.Add(defsResponse);
            Console.WriteLine($"added {defsResponse.Defects.Count} to sink");
            sink.CompleteAdding();
        }