private void PostProcess(TimelineEntry entry, TimelineEntryPostProcessor.Processor perEntryPostProcessors) { perEntryPostProcessors(entry); foreach (TimelineEntry child in entry.ChildEntries) { PostProcess(child, perEntryPostProcessors); } }
private void PostProcess(Timeline timeline, TimelineEntryPostProcessor.Processor perEntryPostProcessors) { foreach (List <TimelineEntry> rootsInNode in timeline.PerNodeRootEntries) { foreach (TimelineEntry root in rootsInNode) { PostProcess(root, perEntryPostProcessors); } } }
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); }