public static void RunOptions(Options opts, TargetOperatingSystem os) { #if DEBUG Console.WriteLine($@"Urls: {string.Join(" ", opts.Urls)}"); Console.WriteLine($@"Extension: {opts.Extension}"); Console.WriteLine($@"Name: {opts.Name}"); Console.WriteLine($@"Path: {opts.Path}"); #endif var integrationRunner = new IntegrationRunner(); integrationRunner.Run(os, opts.Urls.ToList(), opts.Name, opts.Extension, opts.Path); }
public void Run( TargetOperatingSystem os, List <string> targets, string outputFileName = null, string fileExtension = null, string outputPath = null) { var integrator = IntegrationFactory.GetIntegrator(os); var rawTraces = integrator.GetTraces(targets); var rootNodeOfGraph = integrator.ParseRawTraces(rawTraces); var painter = new Painter(rootNodeOfGraph); painter.Draw(outputFileName, fileExtension, outputPath); }
internal static IIntegrator GetIntegrator(TargetOperatingSystem os) { switch (os) { case TargetOperatingSystem.Linux: return(new TraceRouteIntegrator()); case TargetOperatingSystem.Win10: return(new TracertIntegrator()); default: throw new ArgumentOutOfRangeException(nameof(os), os, null); } }