public static DaemonCommand CreateDaemonCommand() { var shell = new Shell(); var coloredConsole = ColoredTextWriter.Out; var coloredErrorConsole = ColoredTextWriter.Error; var fuse = FuseApi.Initialize("daemon", new List <string>()); var daemonReport = fuse.Report; var localSocketServer = new LocalSocketServer(daemonReport); var serviceRunnerFactory = new ServiceRunnerFactory( new Service("CodeAssistance", fuse.CodeAssistance) , new Service("Tray", fuse.Tray) ); var daemonSingleInstance = new EnsureSingleUser( coloredErrorConsole, shell, userFile: DaemonPossessionFile); return(new DaemonCommand( coloredConsole, daemonReport, daemonSingleInstance, fuse, (a) => new DaemonRunner( daemonSingleInstance, localSocketServer, a.Debug, !a.IsMinimal, fuse, serviceRunnerFactory, daemonReport))); }
public DaemonRunner( EnsureSingleUser ensureSingleUser, LocalSocketServer localSocketServer, bool isDebug, bool startServices, IFuseLauncher fuse, ServiceRunnerFactory serviceRunnerFactory, IReport report) { _ensureSingleUser = ensureSingleUser; _runServices = startServices; _fuse = fuse; _localServer = localSocketServer; _isDebug = isDebug; _daemonKey = ensureSingleUser.GetDaemonKey(); _broadcastEvents = new Subject <IEventMessage <IEventData> >(); _replayBroadcastEvents = _broadcastEvents.Replay(TimeSpan.FromMinutes(5)); _pluginClients = new PluginClients(); _serviceRunnerFactory = serviceRunnerFactory; _report = report; }