private static bool IsTaskCL(TimelineEntry entry) { // only take TimelineBuildEntry into account TimelineBuildEntry timelineBuildEntry = entry as TimelineBuildEntry; if (timelineBuildEntry == null) { return(false); } // we're looking for Task ones TaskStartedEvent taskStartedEvent = timelineBuildEntry.BuildEntry.StartEvent as TaskStartedEvent; if (taskStartedEvent == null) { return(false); } // and only the ones called "CL" if (taskStartedEvent.TaskName != "CL") { return(false); } return(true); }
private void ProcessTaskStartEvent(TaskStartedEvent e, TimelineBuilderContext context) { Debug.Assert(context.HasOpenBuilds); Debug.Assert(context.HasOpenProjects); Debug.Assert(context.HasOpenTargets); BuildEntry taskEntry = new BuildEntry(e); context.OpenTaskEntries.Add(taskEntry); // a task's parent is a Target TaskEventContext taskContext = taskEntry.Context as TaskEventContext; Debug.Assert(taskContext != null); BuildEntry parentEntry = context.OpenTargetEntries.Find(targetEntry => { TargetEventContext targetContext = targetEntry.Context as TargetEventContext; Debug.Assert(targetContext != null); return(targetContext.ContextId == taskContext.ContextId && targetContext.ProjectId == taskContext.ProjectId && targetContext.TargetId == taskContext.TargetId); }); Debug.Assert(parentEntry != null); parentEntry.AddChild(e); parentEntry.AddChild(taskEntry); }