/// <nodoc /> public ServicePipDaemon(IParser parser, DaemonConfig daemonConfig, IIpcLogger logger, IIpcProvider rpcProvider = null, Client client = null) { Contract.Requires(daemonConfig != null); Config = daemonConfig; m_parser = parser; ApiClient = client; m_logger = logger; rpcProvider = rpcProvider ?? IpcFactory.GetProvider(); m_server = rpcProvider.GetServer(Config.Moniker, Config); m_etwLogger = new BuildXLBasedCloudBuildLogger(Config.Logger, Config.EnableCloudBuildIntegration); }
/// <summary> /// Logs a generic <see cref="DropOperationBaseEvent"/> by delegating based on the type of <paramref name="e"/>. /// </summary> public static void Log(this ICloudBuildLogger logger, DropOperationBaseEvent e) { switch (e.Kind) { case EventKind.DropCreation: logger.Log((DropCreationEvent)e); return; case EventKind.DropFinalization: logger.Log((DropFinalizationEvent)e); return; default: Contract.Assert(false, "Unsupported " + nameof(DropOperationBaseEvent) + " " + e.Kind); return; } }
/// <nodoc /> public Daemon(IParser parser, DaemonConfig daemonConfig, DropConfig dropConfig, Task <IDropClient> dropClientTask, IIpcProvider rpcProvider = null, Client client = null) { Contract.Requires(daemonConfig != null); Contract.Requires(dropConfig != null); Config = daemonConfig; DropConfig = dropConfig; m_parser = parser; ApiClient = client; m_logger = !string.IsNullOrWhiteSpace(dropConfig.LogDir) ? new FileLogger(dropConfig.LogDir, LogFileName, Config.Moniker, dropConfig.Verbose, DropDLogPrefix) : Config.Logger; m_logger.Info("Using DropDaemon config: " + JsonConvert.SerializeObject(Config)); rpcProvider = rpcProvider ?? IpcFactory.GetProvider(); m_server = rpcProvider.GetServer(Config.Moniker, Config); m_etwLogger = new BuildXLBasedCloudBuildLogger(Config.Logger, Config.EnableCloudBuildIntegration); m_dropClientTask = dropClientTask ?? Task.Run(() => (IDropClient) new VsoClient(m_logger, dropConfig)); }