public void Save(Stream stream) { this.SaveDiagnosticStream(stream, "Original.bin"); lock (this.synchronizationObject) { using (DisposalEscrow disposalEscrow = new DisposalEscrow("CobaltStore.Save")) { CobaltFile cobaltFile = this.CreateCobaltFile(disposalEscrow, true); CobaltFilePartition cobaltFilePartition = cobaltFile.GetCobaltFilePartition(FilePartitionId.Content); Metrics metrics; cobaltFilePartition.SetStream(GenericFda.ContentStreamId, new BytesFromStream(stream), ref metrics); cobaltFilePartition.CommitChanges(); this.SaveDiagnosticDocument(cobaltFile, "AfterSave.bin"); } } }
public Stream GetDocumentStream() { Stream result; lock (this.synchronizationObject) { using (DisposalEscrow disposalEscrow = new DisposalEscrow("CobaltStore.GetDocumentStream")) { CobaltFile cobaltFile = this.CreateCobaltFile(disposalEscrow, false); CobaltFilePartition cobaltFilePartition = cobaltFile.GetCobaltFilePartition(FilePartitionId.Content); Bytes stream = cobaltFilePartition.GetStream(CobaltFilePartition.ContentStreamId); Stream stream2 = new StreamFromBytes(stream, 0UL); Stream stream3 = new StreamDisposalWrapper(stream2, disposalEscrow.Transfer("GetDocumentStream-StreamDisposalWrapper")); result = stream3; } } return(result); }
private void SaveDiagnosticDocument(CobaltFile cobaltFile, string fileName) { if (!this.diagnosticsEnabled) { return; } CobaltFilePartition cobaltFilePartition = cobaltFile.GetCobaltFilePartition(FilePartitionId.Content); Bytes stream = cobaltFilePartition.GetStream(CobaltFilePartition.ContentStreamId); string filePath = this.GetFilePath(fileName); using (StreamFromBytes streamFromBytes = new StreamFromBytes(stream, 0UL)) { using (FileStream fileStream = File.Open(filePath, FileMode.Create, FileAccess.Write)) { streamFromBytes.CopyTo(fileStream); } } }