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);
        }
Exemple #3
0
 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);
 }
Exemple #4
0
        /// <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);
        }
Exemple #5
0
        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...");
     }
 }
Exemple #7
0
        /// <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);
Exemple #10
0
        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();
 }