コード例 #1
0
        private void PostProcess(TimelineEntry entry, TimelineEntryPostProcessor.Processor perEntryPostProcessors)
        {
            perEntryPostProcessors(entry);

            foreach (TimelineEntry child in entry.ChildEntries)
            {
                PostProcess(child, perEntryPostProcessors);
            }
        }
コード例 #2
0
 private void PostProcess(Timeline timeline, TimelineEntryPostProcessor.Processor perEntryPostProcessors)
 {
     foreach (List <TimelineEntry> rootsInNode in timeline.PerNodeRootEntries)
     {
         foreach (TimelineEntry root in rootsInNode)
         {
             PostProcess(root, perEntryPostProcessors);
         }
     }
 }
コード例 #3
0
        public Timeline Build(TimelineEntryPostProcessor.Processor perEntryPostProcessors)
        {
            TimelineBuilderContext context = ProcessEvents(m_buildData.Events);

            Debug.Assert(!context.HasOpenBuilds);
            Debug.Assert(!context.HasOpenProjects);
            Debug.Assert(!context.HasOpenTargets);
            Debug.Assert(!context.HasOpenTasks);
            Debug.Assert(context.RootEntry != null);

            Timeline timeline = BuildTimelineFrom(m_buildData, context);

            if (perEntryPostProcessors != null)
            {
                PostProcess(timeline, perEntryPostProcessors);
            }

            CalculateParallelEntries(timeline);

            EnsureNoEntryOverflowsParent(timeline);

            return(timeline);
        }