/// <summary> /// Creates an instance of <see cref="PipGraphFragmentBuilder"/>. /// </summary> public PipGraphFragmentBuilder( PipExecutionContext pipExecutionContext, IConfiguration configuration, PathExpander pathExpander) { Contract.Requires(pipExecutionContext != null); Configuration = configuration; m_pipExecutionContext = pipExecutionContext; m_lazyApiServerMoniker = configuration.Schedule.UseFixedApiServerMoniker ? Lazy.Create(() => IpcFactory.GetFixedMoniker()) : Lazy.Create(() => IpcFactory.GetProvider().CreateNewMoniker()); SealDirectoryTable = new SealedDirectoryTable(m_pipExecutionContext.PathTable); if (configuration.Schedule.ComputePipStaticFingerprints) { var extraFingerprintSalts = new ExtraFingerprintSalts( configuration, PipFingerprintingVersion.TwoPhaseV2, configuration.Cache.CacheSalt, new DirectoryMembershipFingerprinterRuleSet(configuration, pipExecutionContext.StringTable).ComputeSearchPathToolsHash()); m_pipStaticFingerprinter = new PipStaticFingerprinter( pipExecutionContext.PathTable, sealDirectoryFingerprintLookup: null, directoryProducerFingerprintLookup: null, extraFingerprintSalts: extraFingerprintSalts, pathExpander: pathExpander) { FingerprintTextEnabled = configuration.Schedule.LogPipStaticFingerprintTexts }; } }
/// <summary> /// Creates an instance of <see cref="GraphFragmentBuilder"/>. /// </summary> public GraphFragmentBuilder(LoggingContext loggingContext, PipExecutionContext pipExecutionContext, IConfiguration configuration) { Contract.Requires(loggingContext != null); Contract.Requires(pipExecutionContext != null); m_loggingContext = loggingContext; m_pipExecutionContext = pipExecutionContext; m_lazyApiServerMoniker = configuration.Schedule.UseFixedApiServerMoniker ? Lazy.Create(() => IpcFactory.GetFixedMoniker()) : Lazy.Create(() => IpcFactory.GetProvider().CreateNewMoniker()); SealDirectoryTable = new SealedDirectoryTable(m_pipExecutionContext.PathTable); }