Exemple #1
0
        public override Task <StatusReply> Shutdown(EmptyRequest request, ServerCallContext context)
        {
            Messenger.Post("Shutting down. Thank you for using J.U.K.E\n");
            ShuttingDown = true;
            jukeController.Dispose();
            var processes = Process.GetProcesses().Where(x => x.ProcessName == "afplay");

            foreach (var process in processes)
            {
                process.Kill(true);
            }

            ShutdownInitiated?.Invoke(this, EventArgs.Empty);

            return(Task.FromResult(new StatusReply {
                IsOk = true
            }));
        }
Exemple #2
0
        public IDEModel(DTE dte)
        {
            this.dte = dte;

            dteEvents = this.dte.Events.DTEEvents;
            dteEvents.OnStartupComplete += () => StartupComplete?.Invoke();
            dteEvents.OnBeginShutdown   += () => ShutdownInitiated?.Invoke();

            debuggerEvents = this.dte.Events.DebuggerEvents;
            debuggerEvents.OnEnterDesignMode += (dbgEventReason e) => OnModeChanged(dbgDebugMode.dbgDesignMode);
            debuggerEvents.OnEnterRunMode    += (dbgEventReason e) => OnModeChanged(dbgDebugMode.dbgRunMode);
            debuggerEvents.OnEnterBreakMode  += (dbgEventReason e, ref dbgExecutionAction action) => OnModeChanged(dbgDebugMode.dbgBreakMode);

            VsMode = this.dte.Debugger.CurrentMode;

            // callbacks for IDE windows being opened
            var events2 = dte.Events as Events2;

            if (events2 != null)
            {
                windowVisibilityEvents = events2.WindowVisibilityEvents;
                windowVisibilityEvents.WindowShowing += (Window w) => WindowShown?.Invoke(w);
            }
        }
Exemple #3
0
        private void HandleShutdownServerCommand(object sender, Request pendingRequest)
        {
            if (!MyInfo.IsEqualTo(pendingRequest.RemoteServerInfo))
            {
                var error =
                    "Server shutdown command was received, but the command was not sent " +
                    "by this server. Aborting shutdown process.";

                ReportError(this, error);
                return;
            }

            _eventLog.Add(new ServerEvent
            {
                EventType              = EventType.ReceivedShutdownServerCommand,
                RemoteServerIpAddress  = pendingRequest.RemoteServerInfo.SessionIpAddress,
                RemoteServerPortNumber = pendingRequest.RemoteServerInfo.PortNumber,
                RequestId              = pendingRequest.Id
            });

            EventOccurred?.Invoke(this, _eventLog.Last());
            ShutdownInitiated?.Invoke(this, new EventArgs());
            SuccessfullyProcessedRequest?.Invoke(this, pendingRequest);
        }