private bool WriteFrame(string fileName, FrameArchiveSource source) { var excel = new Application(); //excel.Visible = true; excel.DisplayAlerts = false; var workbooks = excel.Workbooks.Add(XlWBATemplate.xlWBATWorksheet); var frames = source.Frames; for (var i = 0; i < frames.Count; i++) { var frame = frames[i]; var worksheet = (Worksheet)workbooks.Worksheets[i + 1]; worksheet.Name = frame.Description; if (frame is EventFrame) { var eventFrame = frame as EventFrame; if (0 != eventFrame.Root.Children.Count()) { var eventNode = eventFrame.Root.Children[0]; var column = 1; worksheet.Cells[FrameTreeType.Function][column] = "FUNCTION"; worksheet.Cells[FrameTreeType.SelfDuration][column] = "SELFDURATION(MS)"; worksheet.Cells[FrameTreeType.SelfPercent][column] = "SELFPERCENT%"; worksheet.Cells[FrameTreeType.Total][column] = "TOTAL(MS)"; worksheet.Cells[FrameTreeType.TotalPercent][column] = "TOTALPERCENT%"; worksheet.Cells[FrameTreeType.Path][column] = "PATH"; worksheet.Cells[FrameTreeType.Tags][column] = "TAGS"; WriteEventNode(worksheet, ref column, eventNode); } } if (i + 1 != frames.Count) { AddSheet(workbooks, "NextFrame"); } } workbooks.SaveCopyAs(fileName); workbooks.Close(); excel.Quit(); return(true); }
public bool WriteFrame(string fileName, FrameArchiveSource source) { var fileStream = new FileStream(fileName, FileMode.Create); Stream zipStream = null; Stream stream = fileStream; Capture.OptickHeader header = new Capture.OptickHeader(); header.Write(fileStream); if (header.IsZip) { zipStream = new GZipStream(fileStream, CompressionLevel.Fastest); stream = zipStream; } FrameGroup currentGroup = null; foreach (Frame frame in source.Frames) { if (frame is EventFrame) { EventFrame eventFrame = frame as EventFrame; if (eventFrame.Group != currentGroup && currentGroup != null) { currentGroup.Responses.ForEach(response => response.Serialize(stream)); } currentGroup = eventFrame.Group; } else if (frame is SamplingFrame) { if (currentGroup != null) { currentGroup.Responses.ForEach(response => response.Serialize(stream)); currentGroup = null; } var sampleingFrame = frame as SamplingFrame; sampleingFrame.Response.Serialize(stream); } } currentGroup?.Responses.ForEach(response => response.Serialize(stream)); stream.Close(); return(true); }
private bool WriteFrame(string fileName, FrameArchiveSource source) { var frames = source.Frames; var writer = new StreamWriter(fileName, false, Encoding.UTF8); foreach (var frame in frames) { if (frame is EventFrame) { var eventFrame = frame as EventFrame; if (0 != eventFrame.Root.Children.Count()) { var eventNode = eventFrame.Root.Children[0]; writer.WriteLine(@"FUNCTION,SELFDURATION(MS),SELFPERCENT,TOTAL(MS),TOTALPERCENT%,PATH,TAGS"); WriteEventNode(writer, eventNode); } } } return(true); }