예제 #1
0
        /// <nodoc />
        public ApiServer(
            IIpcProvider ipcProvider,
            string ipcMonikerId,
            FileContentManager fileContentManager,
            PipExecutionContext context,
            IServerConfig config,
            EngineCache engineCache,
            Tracing.IExecutionLogTarget executionLog,
            Tracing.BuildManifestGenerator buildManifestGenerator)
        {
            Contract.Requires(ipcMonikerId != null);
            Contract.Requires(fileContentManager != null);
            Contract.Requires(context != null);
            Contract.Requires(config != null);
            Contract.Requires(engineCache != null);
            Contract.Requires(executionLog != null);

            m_fileContentManager         = fileContentManager;
            m_server                     = ipcProvider.GetServer(ipcProvider.LoadAndRenderMoniker(ipcMonikerId), config);
            m_context                    = context;
            m_engineCache                = engineCache;
            m_executionLog               = executionLog;
            m_buildManifestGenerator     = buildManifestGenerator;
            m_inMemoryBuildManifestStore = new ConcurrentDictionary <ContentHash, ContentHash>();
        }
예제 #2
0
        /// <nodoc />
        public ApiServer(
            IIpcProvider ipcProvider,
            string ipcMonikerId,
            FileContentManager fileContentManager,
            PipExecutionContext context,
            IServerConfig config,
            PipTwoPhaseCache pipTwoPhaseCache,
            Tracing.IExecutionLogTarget executionLog,
            Tracing.BuildManifestGenerator buildManifestGenerator,
            ServiceManager serviceManger,
            bool verifyFileContentOnBuildManifestHashComputation)
        {
            Contract.Requires(ipcMonikerId != null);
            Contract.Requires(fileContentManager != null);
            Contract.Requires(context != null);
            Contract.Requires(config != null);
            Contract.Requires(pipTwoPhaseCache != null);
            Contract.Requires(executionLog != null);

            m_fileContentManager         = fileContentManager;
            m_server                     = ipcProvider.GetServer(ipcProvider.LoadAndRenderMoniker(ipcMonikerId), config);
            m_context                    = context;
            m_executionLog               = executionLog;
            m_buildManifestGenerator     = buildManifestGenerator;
            m_serviceManger              = serviceManger;
            m_pipTwoPhaseCache           = pipTwoPhaseCache;
            m_inMemoryBuildManifestStore = new ConcurrentBigMap <ContentHash, IReadOnlyList <ContentHash> >();
            m_receivedStatistics         = new ConcurrentBigMap <string, long>();
            m_verifyFileContentOnBuildManifestHashComputation = verifyFileContentOnBuildManifestHashComputation;
        }
예제 #3
0
        private WeakContentFingerprint GenerateSaltedWeakFingerprint(ContentHash hash) => new WeakContentFingerprint(FingerprintUtilities.Hash($"Hash: '{hash.ToHex()}' Salt: '{m_buildManifestHashCacheSalt}'")); // Changes to this string will invalidate all existing cache entries

        /// <nodoc />
        public ApiServer(
            IIpcProvider ipcProvider,
            string ipcMonikerId,
            FileContentManager fileContentManager,
            PipExecutionContext context,
            IServerConfig config,
            EngineCache engineCache,
            Tracing.IExecutionLogTarget executionLog,
            Tracing.BuildManifestGenerator buildManifestGenerator)
        {
            Contract.Requires(ipcMonikerId != null);
            Contract.Requires(fileContentManager != null);
            Contract.Requires(context != null);
            Contract.Requires(config != null);
            Contract.Requires(engineCache != null);
            Contract.Requires(executionLog != null);

            m_fileContentManager         = fileContentManager;
            m_server                     = ipcProvider.GetServer(ipcProvider.LoadAndRenderMoniker(ipcMonikerId), config);
            m_context                    = context;
            m_engineCache                = engineCache;
            m_executionLog               = executionLog;
            m_buildManifestGenerator     = buildManifestGenerator;
            m_inMemoryBuildManifestStore = new ConcurrentBigMap <ContentHash, ContentHash>();
            m_buildManifestHashCacheSalt = string.IsNullOrEmpty(Utilities.Configuration.EngineEnvironmentSettings.BuildManifestHashCacheSalt)
                ? string.Empty
                : Utilities.Configuration.EngineEnvironmentSettings.BuildManifestHashCacheSalt;
        }
예제 #4
0
        /// <nodoc />
        public ApiServer(
            IIpcProvider ipcProvider,
            string ipcMonikerId,
            FileContentManager fileContentManager,
            PipExecutionContext context,
            IServerConfig config)
        {
            Contract.Requires(ipcMonikerId != null);
            Contract.Requires(fileContentManager != null);
            Contract.Requires(context != null);
            Contract.Requires(config != null);

            m_fileContentManager = fileContentManager;
            m_server             = ipcProvider.GetServer(ipcProvider.LoadAndRenderMoniker(ipcMonikerId), config);
            m_context            = context;
        }