public PluggableProtocolManager(
            ITraceSourceFactory traceSourceFactory,
            MultiInstance.IInstancesCounter instancesCounter,
            IShutdown shutdown,
            Telemetry.ITelemetryCollector telemetryCollector,
            Persistence.IFirstStartDetector firstStartDetector,
            ILaunchUrlParser launchUrlParser
            )
        {
            this.tracer          = traceSourceFactory.CreateTraceSource("PluggableProtocol");
            this.launchUrlParser = launchUrlParser;

            if (instancesCounter.IsPrimaryInstance)
            {
                this.regUpdater = RegistryUpdater(shutdown.ShutdownToken, telemetryCollector, firstStartDetector.IsFirstStartDetected);
            }

            shutdown.Cleanup += (s, e) =>
            {
                if (regUpdater != null)
                {
                    shutdown.AddCleanupTask(regUpdater.WithTimeout(TimeSpan.FromSeconds(1)));
                }
            };
        }
Example #2
0
 public void Setup()
 {
     workspacesManager         = Substitute.For <IWorkspacesManager>();
     appLaunch                 = Substitute.For <ILaunchUrlParser>();
     preprocessingStepsFactory = Substitute.For <IStepsFactory>();
     extensions                = Substitute.For <IExtensionsRegistry>();
     preprocessingStepsFactory.CreateURLTypeDetectionStep(null).ReturnsForAnyArgs(
         callInfo => new URLTypeDetectionStep(
             callInfo.Arg <PreprocessingStepParams>(), preprocessingStepsFactory, workspacesManager, appLaunch, extensions));
     callback = Substitute.For <IPreprocessingStepCallback>();
 }