private async void OnPausedEvent(PausedEvent obj) { var mess = $"{obj.Reason}: {obj.Data.ToString()}"; Dispatcher.Invoke(DispatcherPriority.Normal, (ThreadStart) delegate() { tbDOMDebuggerMessages.Text = $"{mess} {Environment.NewLine}" + tbDOMDebuggerMessages.Text; }); await asyncChromeDriver.DevTools.Session.Debugger.Resume(); }
/// <summary> /// Convert this event information to a <see cref="PausedEvent"/> event. /// </summary> /// <returns></returns> public PausedEvent AsEvent() { var pausedEvent = new PausedEvent { HitBreakpoints = new[] { BreakPoint.GetBreakPointName(Script) }, Reason = Reason ?? "breakpoint", CallFrames = BreakPoint.GetCallFrame(Script) }; return(pausedEvent); }
public void pausedEventUpdate(PausedEvent PausedEvent, IEnumerable<SubCalendarEvent> SubEvents) { string who = HttpContext.Current.User.Identity.GetUserId(); var context = Microsoft.AspNet.SignalR.GlobalHost.ConnectionManager.GetHubContext<TilerFront.SocketHubs.ScheduleChange>(); dynamic pauseEventRequest = new JObject(); pauseEventRequest.pauseData = new JObject(); pauseEventRequest.pauseData.pausedEvent = new JObject(PausedEvent); JArray jobjectSubeevents = new JArray(SubEvents.Select(subEvent=>subEvent.ToSubCalEvent()).ToArray()); pauseEventRequest.pauseData.subevents = jobjectSubeevents; context.Clients.Group(who).refereshDataFromSockets(pauseEventRequest); }
/// <summary> /// This contains the functionality for retrieveing the paused event from the db. /// THis is supposed to be part of logcontrol.cs. This should be done after the move to an rdbms like storage /// TODO: move to logcontrol.cs after switching to an rdbms db /// </summary> /// <param name="db"></param> /// <param name="userId"></param> /// <returns></returns> virtual public PausedEvent getCurrentPausedEvent(ApplicationDbContext db, string userId, bool forceRefresh = false) { if (string.IsNullOrEmpty(userId)) { throw new ArgumentException("Null value provided for user Id", "userId"); } if ((PausedEvent == null) || forceRefresh) { PausedEvent = db.PausedEvents.SingleOrDefault(obj => obj.UserId == userId && obj.isPauseDeleted == false); } return(PausedEvent); }
public void populatePauseData(PausedEvent PausedEvent, DateTimeOffset currentTime) { DateTimeOffset CurrentTime = currentTime; long RangeStart = (long)(CurrentTime - TilerElementExtension.JSStartTime).TotalMilliseconds; long RangeEnd = RangeStart + (long)TimeSpan.FromDays(1).TotalMilliseconds; Func <SubCalEvent, bool> predicate = (subEvent => { if ((RangeStart <= subEvent.SubCalEndDate) && (RangeEnd >= subEvent.SubCalStartDate)) { return(true); } return(false); }); List <SubCalEvent> allSubEvents = this.SubCalendarEvents == null?this.RepeatCalendarEvent.SelectMany(obj => obj.RepeatCalendarEvents.SelectMany(CalEvent => CalEvent.AllSubCalEvents)).Concat(NonRepeatCalendarEvent.SelectMany(obj => obj.AllSubCalEvents)).ToList() : this.SubCalendarEvents.ToList(); SubCalEvent pausedSubEVent = allSubEvents.FirstOrDefault(obj => obj.isPaused); //creates paused event from the list of events derived if ((pausedSubEVent != null) && (PausedEvent == null)) { PausedEvent = new PausedEvent() { EventId = pausedSubEVent.ID, isPauseDeleted = pausedSubEVent.isEnabled }; } PausedEvent PausedEventDuplicate = null; if (PausedEvent != null)// doing this to avoid modifying Entity framework attached copy of the object { PausedEventDuplicate = new PausedEvent() { EventId = PausedEvent.EventId, isPauseDeleted = PausedEvent.isPauseDeleted, PauseTime = PausedEvent.PauseTime }; } allSubEvents = allSubEvents.Take(10).ToList(); dynamic RetValue = new JObject(); RetValue.pausedEvent = PausedEvent == null? null : JObject.FromObject(PausedEventDuplicate); RetValue.subEvents = JArray.FromObject(allSubEvents); this.PauseData = RetValue as JObject; }
private void PausedHandler(object o, PausedEvent @event) { if (@event.IsPaused) { SuspendListener(); if ([email protected]) { hotkeyListener.Add(settingsService.Settings.Hotkeys[Enum.ActionName.Pause]); } logService.AddEntry(this, $"Pausing HotkeyListener..."); } else { ResumeListener(); logService.AddEntry(this, $"Resuming HotkeyListener..."); } }
/// <summary> /// /// </summary> public void Pause() { if (_status != RunningStatus.Running) { return; } _completionEvent.WaitOne(); try { _completionEvent.Reset(); _status = RunningStatus.Paused; } finally { _completionEvent.Set(); PausedEvent?.Invoke(this, null); } }
public void OnPaused() { PausedEvent?.Invoke(); }
public void OnPaused(object sender, string message) => PausedEvent?.Invoke(sender, message);
public static void HandlePacket(byte[] data) { Debug.WriteLine("HandlePacket"); BinaryReader rdr = new BinaryReader(new MemoryStream(data)); var size = rdr.ReadUInt32(); var cmd = (PacketCmd)rdr.ReadUInt16(); var reqId = rdr.ReadUInt16(); if (cmd == PacketCmd.BpHit) { ResetDataCache(); currentlyPaused = true; var e = new BpHitEventArgs(); e.coreId = rdr.ReadUInt32(); e.PauseInfo = readDebugPauseInfo(rdr); BpHitEvent.Invoke(null, e); } else if (cmd == PacketCmd.CoreStepped) { ResetDataCache(); currentlyPaused = true; var e = new CoreSteppedEventArgs(); e.coreId = rdr.ReadUInt32(); e.PauseInfo = readDebugPauseInfo(rdr); CoreSteppedEvent.Invoke(null, e); } else if (cmd == PacketCmd.Paused) { ResetDataCache(); currentlyPaused = true; var e = new PausedEventArgs(); e.PauseInfo = readDebugPauseInfo(rdr); PausedEvent.Invoke(null, e); } else if (cmd == PacketCmd.ReadMemRes) { var address = rdr.ReadUInt32(); var numBytes = rdr.ReadUInt64(); var bytes = rdr.ReadBytes((int)numBytes); cacheMutex.WaitOne(); var pageIdx = address / GetMemoryPageSize(); var page = memDict[pageIdx]; if (page != null) { page.data = bytes; var waiters = page.waiters; page.waiters = new List <DoneNotif>(); waiters.ForEach((DoneNotif i) => { i(); }); } cacheMutex.ReleaseMutex(); } else if (cmd == PacketCmd.DisasmRes) { var address = rdr.ReadUInt32(); var numInstrs = rdr.ReadUInt64(); var instrs = new string[numInstrs]; for (var i = 0; i < (int)numInstrs; ++i) { instrs[i] = readString(rdr); } cacheMutex.WaitOne(); var pageIdx = address / GetInstrPageSize(); var page = instrDict[pageIdx]; if (page != null) { page.data = instrs; var waiters = page.waiters; page.waiters = new List <DoneNotif>(); waiters.ForEach((DoneNotif i) => { i(); }); } cacheMutex.ReleaseMutex(); } else if (cmd == PacketCmd.GetTraceRes) { var e = new GetTraceEventArgs(); e.ThreadId = rdr.ReadUInt32(); var numTraces = rdr.ReadUInt64(); e.Info = new DebugTraceEntry[numTraces]; for (ulong i = 0; i < numTraces; ++i) { e.Info[i] = readDebugTraceEntry(rdr); } GetTraceEvent.Invoke(null, e); } else { Debug.WriteLine(data); } }
void Connection_OnPause() { PausedEvent?.Invoke(); }