Exemple #1
0
        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)));
        }
Exemple #2
0
 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;
 }