コード例 #1
0
ファイル: EventFrame.cs プロジェクト: wobbier/brofiler
        private void Init(FrameHeader header, List <Entry> entries, FrameGroup group)
        {
            Header     = header;
            Group      = group;
            Categories = new List <Entry>();

            Entries = entries;
            foreach (Entry entry in entries)
            {
                if (entry.Description.Color.A != 0)
                {
                    Categories.Add(entry);
                }
            }

            categoriesTree = new EventTree(this, Categories);

            root  = new EventTree(this, Entries);
            board = new Board <EventBoardItem, EventDescription, EventNode>(root);

            Synchronization = new List <SyncInterval>();
            FiberSync       = new List <FiberSyncInterval>();

            IsLoaded = true;
        }
コード例 #2
0
ファイル: EventFrame.cs プロジェクト: qjxkid/brofiler
        protected void ReadInternal(BinaryReader reader)
        {
            Header         = FrameHeader.Read(reader);
            Categories     = ReadEventList(reader, DescriptionBoard);
            CategoriesTree = new EventTree(this, Categories);

            Synchronization = new List <SyncInterval>();
            FiberSync       = new List <FiberSyncInterval>();
        }
コード例 #3
0
ファイル: EventFrame.cs プロジェクト: qjxkid/brofiler
        public void MergeWith(EventFrame frame)
        {
            Categories.AddRange(frame.Categories);
            Categories.Sort();

            Entries.AddRange(frame.Entries);
            Entries.Sort();

            root  = new EventTree(this, Entries);
            board = new Board <EventBoardItem, EventDescription, EventNode>(root);

            CategoriesTree = new EventTree(this, Categories);
        }
コード例 #4
0
ファイル: EventFrame.cs プロジェクト: qjxkid/brofiler
        public override void Load()
        {
            lock (loading)
            {
                if (!IsLoaded)
                {
                    entries = ReadEventList(reader, DescriptionBoard);

                    root  = new EventTree(this, entries);
                    board = new Board <EventBoardItem, EventDescription, EventNode>(root);

                    reader   = null;
                    IsLoaded = true;
                }
            }
        }
コード例 #5
0
        protected void ReadInternal(BinaryReader reader)
        {
            Header         = FrameHeader.Read(reader);
            Categories     = ReadEventList(reader, DescriptionBoard);
            CategoriesTree = new EventTree(this, Categories);

            Synchronization = ReadEventTimeList(reader);
            Synchronization.Sort();
            Synchronization = LinearizeEventList(Synchronization);

            SynchronizationDuration = 0.0;
            foreach (EventData interval in Synchronization)
            {
                SynchronizationDuration += interval.Duration;
            }
        }
コード例 #6
0
ファイル: EventFrame.cs プロジェクト: heavenlydynasty/optick
        private void LazyLoad()
        {
            lock (loading)
            {
                if (tags == null)
                {
                    tags = new List <Tag>();
                    if (Header.ThreadIndex != -1 && Group.Threads[Header.ThreadIndex].TagsPack != null)
                    {
                        Utils.ForEachInsideIntervalStrict(Group.Threads[Header.ThreadIndex].TagsPack.Tags, Header, tag => { tags.Add(tag); });
                    }
                }

                if (root == null)
                {
                    root = new EventTree(this, Entries);
                    root.BuildTags(tags);
                }
            }
        }
コード例 #7
0
ファイル: EventFrame.cs プロジェクト: heavenlydynasty/optick
 public override void Clear()
 {
     Parent = null;
     if (null != root)
     {
         root.Clear();
         root = null;
     }
     if (null != categoriesTree)
     {
         categoriesTree.Clear();
         categoriesTree = null;
     }
     if (null != tags)
     {
         tags.Clear();
         tags = null;
     }
     if (null != Entries)
     {
         foreach (var entry in Entries)
         {
             entry.Clear();
         }
         Entries = null;
     }
     if (null != Categories)
     {
         foreach (var category in Categories)
         {
             category.Clear();
         }
         Categories = null;
     }
     Group = null;
 }