/ Tools / TranscriptAnalysis / Processor.cs
Processor.cs
 1  using Logging;
 2  using OverwatchTranscript;
 3  
 4  namespace TranscriptAnalysis
 5  {
 6      public class Processor
 7      {
 8          private readonly ILog log;
 9          private readonly ITranscriptReader reader;
10  
11          public Processor(ILog log, ITranscriptReader reader)
12          {
13              this.log = new LogPrefixer(log, "(Processor) ");
14              this.reader = reader;
15          }
16  
17          public void RunAll()
18          {
19              log.Log("Events: " + reader.Header.NumberOfEvents);
20              log.Log("Moments: " + reader.Header.NumberOfMoments);
21  
22              log.Log("Processing...");
23              var count = 0;
24              var tenth = reader.Header.NumberOfMoments / 10;
25              var miss = 0;
26              while (true)
27              {
28                  if (!reader.Next())
29                  {
30                      miss++;
31                      if (miss > 20)
32                      {
33                          log.Log("Done");
34                          return;
35                      }
36                      Thread.Sleep(1);
37                  }
38                  else
39                  {
40                      miss = 0;
41                      count++;
42                      if (count % tenth == 0)
43                      {
44                          log.Log($"{count} / {reader.Header.NumberOfMoments}...");
45                      }
46                  }
47              }
48          }
49      }
50  }