示例#1
0
        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);
        }
示例#2
0
        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);
        }
示例#3
0
        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);
            }
        }