示例#1
0
        public CosineDumpPip(AnalysisInput input, string outputFilePath, DumpPipFilters filters)
            : base(input)
        {
            OutputFilePath = outputFilePath;
            Filters        = filters;

            Console.WriteLine($"CosineDumpPip: Constructed at {DateTime.Now}.");
        }
示例#2
0
        public Analyzer InitializeCosineDumpPip()
        {
            DumpPipFilters filters        = new DumpPipFilters();
            string         outputFilePath = null;

            foreach (Option opt in AnalyzerOptions)
            {
                if (opt.Name.Equals(OutputFileOption, StringComparison.OrdinalIgnoreCase))
                {
                    outputFilePath = ParseSingletonPathOption(opt, outputFilePath);
                }
                else if (opt.Name.Equals(PipHashOption, StringComparison.OrdinalIgnoreCase))
                {
                    string sshAsString = ParseStringOption(opt);
                    if (!sshAsString.StartsWith(Pip.SemiStableHashPrefix, StringComparison.OrdinalIgnoreCase))
                    {
                        throw Error($"Invalid pip:{sshAsString}. Id must be a semistable hash that starts with the prefix '{Pip.SemiStableHashPrefix}' i.e.: {Pip.SemiStableHashPrefix}C623BCE303738C69");
                    }
                    filters.PipSemiStableHash = Convert.ToInt64(sshAsString.Substring(3), 16);
                }
                else if (opt.Name.Equals(PipTypeOption, StringComparison.OrdinalIgnoreCase))
                {
                    filters.PipTypeFilter = ParseEnumOption <PipType>(opt);
                }
                else if (opt.Name.Equals(MetadataOnlyOption, StringComparison.OrdinalIgnoreCase))
                {
                    filters.OnlyMetadata = true;
                }
                else
                {
                    throw Error("Unknown option for cosine dump pip analysis: {0}", opt.Name);
                }
            }

            if (string.IsNullOrEmpty(outputFilePath))
            {
                throw Error("/outputFile parameter is required");
            }

            return(new CosineDumpPip(GetAnalysisInput(), outputFilePath, filters));
        }
示例#3
0
        public Analyzer InitializeCosineDumpPip()
        {
            DumpPipFilters filters        = new DumpPipFilters();
            string         outputFilePath = null;

            foreach (Option opt in AnalyzerOptions)
            {
                if (opt.Name.Equals(OutputFileOption, StringComparison.OrdinalIgnoreCase))
                {
                    outputFilePath = ParseSingletonPathOption(opt, outputFilePath);
                }
                else if (opt.Name.Equals(PipHashOption, StringComparison.OrdinalIgnoreCase))
                {
                    filters.PipSemiStableHash = ParseSemistableHash(opt);
                }
                else if (opt.Name.Equals(PipTypeOption, StringComparison.OrdinalIgnoreCase))
                {
                    filters.PipTypeFilter = ParseEnumOption <PipType>(opt);
                }
                else if (opt.Name.Equals(MetadataOnlyOption, StringComparison.OrdinalIgnoreCase))
                {
                    filters.OnlyMetadata = true;
                }
                else
                {
                    throw Error("Unknown option for cosine dump pip analysis: {0}", opt.Name);
                }
            }

            if (string.IsNullOrEmpty(outputFilePath))
            {
                throw Error("/outputFile parameter is required");
            }

            return(new CosineDumpPip(GetAnalysisInput(), outputFilePath, filters));
        }
示例#4
0
 public CosineDumpPip(AnalysisInput input, string outputFilePath, DumpPipFilters filters)
     : base(input)
 {
     OutputFilePath = outputFilePath;
     Filters        = filters;
 }