Exemple #1
0
        public unsafe List <IEvent> BuildChildren(IEvent parent, byte[] data, int offset, Lazy <uint> parentTime, uint threadUid)
        {
            List <IEvent> events = new List <IEvent>();

            fixed(byte *dataPointer = data)
            {
                byte *parentPointer = dataPointer + offset;
                short parentDepth   = NativeEventHelper.GetDepth(parentPointer);
                short targetDepth   = (short)(parentDepth + 1);

                offset += NativeEventHelper.EventSize;
                for (;
                     offset < data.Length && NativeEventHelper.GetDepth(dataPointer + offset) > parentDepth;
                     offset += NativeEventHelper.EventSize)
                {
                    if (NativeEventHelper.GetDepth(dataPointer + offset) == targetDepth)
                    {
                        IEvent @event = new Event(parent, data, offset, parentTime, threadUid, this);
                        events.Add(@event);
                    }
                }
            }

            return(events);
        }
Exemple #2
0
 private unsafe uint GetTime()
 {
     fixed(byte *dataPointer = _data)
     {
         return(NativeEventHelper.GetTime(dataPointer + _offset));
     }
 }
Exemple #3
0
        public override void OnApplyTemplate()
        {
            base.OnApplyTemplate();
            //------------------
            _headerPanel  = GetTemplateChild(HeaderPanelPartName) as Panel;
            _contentPanel = GetTemplateChild(ContentPanelPartName) as Panel;
            _footerPanel  = GetTemplateChild(FooterPanelPartName) as Panel;
            double eventPercent = NativeEventHelper.GetEventPercent(_event);
            //------------------
            Border childrenIndicatorBorder = GetTemplateChild(ChildrenIndicatorBorderPartName) as Border;

            if (childrenIndicatorBorder != null)
            {
                childrenIndicatorBorder.Visibility = _event.HasChildren ? Visibility.Visible : Visibility.Hidden;
            }
            //------------------
            Border percentsColorIndicatorBorder = GetTemplateChild(PercentsColorIndicatorBorderPartName) as Border;

            if (percentsColorIndicatorBorder != null)
            {
                percentsColorIndicatorBorder.Visibility = IsRootItem ? Visibility.Collapsed : Visibility.Visible;
                percentsColorIndicatorBorder.Background = new SolidColorBrush(PercentsToColorConverter.Convert(eventPercent));
            }
            //------------------
            TextBlock percentTextBlock = GetTemplateChild(PercentTextBlockPartName) as TextBlock;

            if (percentTextBlock != null)
            {
                percentTextBlock.Text = string.Format("{0}%", eventPercent);
            }
            //------------------
            TextBlock timeTextBlock = GetTemplateChild(TimeTextBlockPartName) as TextBlock;

            if (timeTextBlock != null)
            {
                timeTextBlock.Text = string.Format("{0}ms", _event.Time);
            }
            //------------------
            TextBlock hitsTextBlock = GetTemplateChild(HitsTextBlockPartName) as TextBlock;

            if (hitsTextBlock != null)
            {
                hitsTextBlock.Text = string.Format("{0}hits", _event.Hits);
            }
            //------------------
            TextBlock nameTextBlock = GetTemplateChild(NameTextBlockPartName) as TextBlock;

            if (nameTextBlock != null)
            {
                nameTextBlock.Text = _eventMessageBuilder.BuildMessage(_event);
            }
            SynchronizeLevelOffset(LevelOffset);
        }
Exemple #4
0
        public unsafe List <IEvent> BuildChildren(IEvent parent, byte[] data, Lazy <uint> parentTime, uint threadUid)
        {
            List <IEvent> events = new List <IEvent>();

            fixed(byte *dataPointer = data)
            {
                for (int offset = 0; offset < data.Length; offset += NativeEventHelper.EventSize)
                {
                    if (NativeEventHelper.GetDepth(dataPointer + offset) == 0)
                    {
                        IEvent @event = new Event(parent, data, offset, parentTime, threadUid, this);
                        events.Add(@event);
                    }
                }
            }

            return(events);
        }