Changeset 2621
- Timestamp:
- 5/11/2012 2:48:45 AM (13 months ago)
- Location:
- trunk/eraser
- Files:
-
- 3 added
- 2 edited
-
Dependencies/Lzma#.XML (added)
-
Dependencies/Lzma#.dll (added)
-
Dependencies/Lzma#.pdb (added)
-
Eraser.BlackBox/BlackBox.cs (modified) (5 diffs)
-
Eraser.BlackBox/Eraser.BlackBox.csproj (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
trunk/eraser/Eraser.BlackBox/BlackBox.cs
r2536 r2621 39 39 using System.ComponentModel; 40 40 41 using SevenZip; 42 using SevenZip.Compression.LZMA; 41 43 using ICSharpCode.SharpZipLib.Tar; 42 44 using ICSharpCode.SharpZipLib.BZip2; … … 617 619 public class BlackBoxReportUploader 618 620 { 621 private class SevenZipProgressCallback : ICodeProgress 622 { 623 public SevenZipProgressCallback(BlackBoxReportUploader uploader, 624 SteppedProgressManager progress, ProgressManager stepProgress, 625 ProgressChangedEventHandler progressChanged) 626 { 627 Uploader = uploader; 628 Progress = progress; 629 StepProgress = stepProgress; 630 EventHandler = progressChanged; 631 } 632 633 #region ICodeProgress Members 634 635 public void SetProgress(long inSize, long outSize) 636 { 637 StepProgress.Completed = inSize; 638 EventHandler(Uploader, new ProgressChangedEventArgs(Progress, null)); 639 } 640 641 #endregion 642 643 private BlackBoxReportUploader Uploader; 644 private SteppedProgressManager Progress; 645 private ProgressManager StepProgress; 646 private ProgressChangedEventHandler EventHandler; 647 } 648 619 649 /// <summary> 620 650 /// Constructor. … … 731 761 ProgressManager step = new ProgressManager(); 732 762 progress.Steps.Add(new SteppedProgressManagerStep(step, 0.5f, "Compressing")); 733 using (FileStream bzipFile = new FileStream(ReportBaseName + ".tbz", 763 CoderPropID[] propIDs = 764 { 765 CoderPropID.DictionarySize, 766 CoderPropID.PosStateBits, 767 CoderPropID.LitContextBits, 768 CoderPropID.LitPosBits, 769 CoderPropID.Algorithm, 770 CoderPropID.NumFastBytes, 771 CoderPropID.MatchFinder, 772 CoderPropID.EndMarker 773 }; 774 object[] properties = 775 { 776 (Int32)(1 << 24), //Dictionary Size 777 (Int32)2, //PosState Bits 778 (Int32)0, //LitContext Bits 779 (Int32)2, //LitPos Bits 780 (Int32)2, //Algorithm 781 (Int32)128, //Fast Bytes 782 "bt4", //Match Finger 783 true //Write end-of-stream 784 }; 785 786 SevenZip.Compression.LZMA.Encoder encoder = new SevenZip.Compression.LZMA.Encoder(); 787 encoder.SetCoderProperties(propIDs, properties); 788 789 using (FileStream sevenZipFile = new FileStream(ReportBaseName + ".tar.7z", 734 790 FileMode.Create)) 735 791 using (FileStream tarStream = new FileStream(ReportBaseName + ".tar", 736 792 FileMode.Open, FileAccess.Read, FileShare.Read, 262144, FileOptions.DeleteOnClose)) 737 using (BZip2OutputStream bzipStream = new BZip2OutputStream(bzipFile, 262144)) 738 { 739 //Compress the tar file 740 int lastRead = 0; 741 byte[] buffer = new byte[524288]; 742 while ((lastRead = tarStream.Read(buffer, 0, buffer.Length)) != 0) 743 { 744 bzipStream.Write(buffer, 0, lastRead); 745 step.Total = tarStream.Length; 746 step.Completed = tarStream.Position; 747 748 if (progressChanged != null) 749 progressChanged(this, new ProgressChangedEventArgs(progress, null)); 750 } 793 { 794 encoder.WriteCoderProperties(sevenZipFile); 795 Int64 fileSize = -1; 796 for (int i = 0; i < 8; i++) 797 sevenZipFile.WriteByte((Byte)(fileSize >> (8 * i))); 798 799 step.Total = tarStream.Length; 800 ICodeProgress callback = progressChanged == null ? null : 801 new SevenZipProgressCallback(this, progress, step, progressChanged); 802 encoder.Code(tarStream, sevenZipFile, -1, -1, callback); 751 803 } 752 804 } … … 762 814 Compress(overallProgress, progressChanged); 763 815 764 using (FileStream bzipFile = new FileStream(ReportBaseName + ".t bz",816 using (FileStream bzipFile = new FileStream(ReportBaseName + ".tar.7z", 765 817 FileMode.Open, FileAccess.Read, FileShare.Read, 131072, FileOptions.DeleteOnClose)) 766 818 using (Stream logFile = Report.DebugLog) … … 769 821 PostDataBuilder builder = new PostDataBuilder(); 770 822 builder.AddPart(new PostDataField("action", "upload")); 771 builder.AddPart(new PostDataFileField("crashReport", "Report.t bz", bzipFile));823 builder.AddPart(new PostDataFileField("crashReport", "Report.tar.7z", bzipFile)); 772 824 AddStackTraceToRequest(Report.StackTrace, builder); 773 825 -
trunk/eraser/Eraser.BlackBox/Eraser.BlackBox.csproj
r2509 r2621 65 65 <HintPath>..\Dependencies\ICSharpCode.SharpZipLib.dll</HintPath> 66 66 <Private>True</Private> 67 </Reference> 68 <Reference Include="Lzma#"> 69 <HintPath>..\Dependencies\Lzma#.dll</HintPath> 67 70 </Reference> 68 71 <Reference Include="Microsoft.VisualBasic" />
Note: See TracChangeset
for help on using the changeset viewer.
