Code:
/ Dotnetfx_Vista_SP2 / Dotnetfx_Vista_SP2 / 8.0.50727.4016 / DEVDIV / depot / DevDiv / releases / Orcas / QFE / wpf / src / Base / MS / Internal / IO / Packaging / CompoundFile / CompressionTransform.cs / 1 / CompressionTransform.cs
//------------------------------------------------------------------------------ // //// Copyright (C) Microsoft Corporation. All rights reserved. // // // Description: // This class implements IDataTransform for the Compression transform. // // History: // 06/04/2002: BruceMac: Initial implementation. // 05/29/2003: LGolding: Ported to WCP tree. // 05/17/2005: BruceMac: Port to Office-compatible block-based format // 05/30/2005: BruceMac: Moved to System.IO.Packaging namespace // 12/14/2005: BruceMac: Moved to MS.Internal.IO.Packaging.CompoundFile namespace // //----------------------------------------------------------------------------- using System; using System.Collections; // for IDictionary using System.IO; // for Stream using System.IO.Packaging; using System.Globalization; // for CultureInfo using System.Windows; // ExceptionStringTable using MS.Internal.IO.Packaging; // CompoundFileEmulationStream using MS.Internal.IO.Packaging.CompoundFile; //using System.Windows; namespace MS.Internal.IO.Packaging.CompoundFile { ////// CompressionTransform for use in Compound File DataSpaces /// internal class CompressionTransform : IDataTransform { #region IDataTransform ////// Transform readiness /// public bool IsReady { get { return true; } } ////// No configuration parameters for this transform /// public bool FixedSettings { get { return true; } } ////// Returns the type name identifier string. /// public object TransformIdentifier { get { return CompressionTransform.ClassTransformIdentifier; } } ////// Expose the transform identifier for the use of the DataSpaceManager. /// internal static string ClassTransformIdentifier { get { return "{86DE7F2B-DDCE-486d-B016-405BBE82B8BC}"; } } //----------------------------------------------------- // // Public Methods // //----------------------------------------------------- ////// Given output stream returns stream for encoding/decoding /// /// the encoded stream that this transform acts on /// Dictionary object used to store any additional context information ///the stream that implements the transform ////// This method is used only by the DataSpaceManager, so we declare it as an explicit /// interface implementation to hide it from the public interface. /// Stream IDataTransform.GetTransformedStream( Stream encodedStream, IDictionary transformContext ) { Stream tempStream = new SparseMemoryStream(_lowWaterMark, _highWaterMark); tempStream = new CompressEmulationStream(encodedStream, tempStream, 0, new CompoundFileDeflateTransform()); // return a VersionedStream that works with the VersionedStreamOwner // to verify/update our FormatVersion info return new VersionedStream(tempStream, _versionedStreamOwner); } #endregion ////// constructor /// /// environment ///this should only be used by the DataSpaceManager class public CompressionTransform(TransformEnvironment myEnvironment) { _transformEnvironment = myEnvironment; // Create a wrapper that manages persistence and comparison of FormatVersion // in our InstanceData stream. We can read/write to this stream as needed (though CompressionTransform // does not because we don't house any non-FormatVersion data in the instance data stream). // We need to give out our current code version so it can compare with any file version as appropriate. _versionedStreamOwner = new VersionedStreamOwner( _transformEnvironment.GetPrimaryInstanceData(), new FormatVersion(_featureName, _minimumReaderVersion, _minimumUpdaterVersion, _currentFeatureVersion)); } //------------------------------------------------------ // // Private Data // //----------------------------------------------------- private TransformEnvironment _transformEnvironment; private VersionedStreamOwner _versionedStreamOwner; // our instance data stream wrapped private static readonly string _featureName = "Microsoft.Metadata.CompressionTransform"; private static readonly VersionPair _currentFeatureVersion = new VersionPair(1, 0); private static readonly VersionPair _minimumReaderVersion = new VersionPair(1, 0); private static readonly VersionPair _minimumUpdaterVersion = new VersionPair(1, 0); private const long _lowWaterMark = 0x19000; // we definitely would like to keep everything under 100 KB in memory private const long _highWaterMark = 0xA00000; // we would like to keep everything over 10 MB on disk } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. // Copyright (c) Microsoft Corporation. All rights reserved. //------------------------------------------------------------------------------ // //// Copyright (C) Microsoft Corporation. All rights reserved. // // // Description: // This class implements IDataTransform for the Compression transform. // // History: // 06/04/2002: BruceMac: Initial implementation. // 05/29/2003: LGolding: Ported to WCP tree. // 05/17/2005: BruceMac: Port to Office-compatible block-based format // 05/30/2005: BruceMac: Moved to System.IO.Packaging namespace // 12/14/2005: BruceMac: Moved to MS.Internal.IO.Packaging.CompoundFile namespace // //----------------------------------------------------------------------------- using System; using System.Collections; // for IDictionary using System.IO; // for Stream using System.IO.Packaging; using System.Globalization; // for CultureInfo using System.Windows; // ExceptionStringTable using MS.Internal.IO.Packaging; // CompoundFileEmulationStream using MS.Internal.IO.Packaging.CompoundFile; //using System.Windows; namespace MS.Internal.IO.Packaging.CompoundFile { ////// CompressionTransform for use in Compound File DataSpaces /// internal class CompressionTransform : IDataTransform { #region IDataTransform ////// Transform readiness /// public bool IsReady { get { return true; } } ////// No configuration parameters for this transform /// public bool FixedSettings { get { return true; } } ////// Returns the type name identifier string. /// public object TransformIdentifier { get { return CompressionTransform.ClassTransformIdentifier; } } ////// Expose the transform identifier for the use of the DataSpaceManager. /// internal static string ClassTransformIdentifier { get { return "{86DE7F2B-DDCE-486d-B016-405BBE82B8BC}"; } } //----------------------------------------------------- // // Public Methods // //----------------------------------------------------- ////// Given output stream returns stream for encoding/decoding /// /// the encoded stream that this transform acts on /// Dictionary object used to store any additional context information ///the stream that implements the transform ////// This method is used only by the DataSpaceManager, so we declare it as an explicit /// interface implementation to hide it from the public interface. /// Stream IDataTransform.GetTransformedStream( Stream encodedStream, IDictionary transformContext ) { Stream tempStream = new SparseMemoryStream(_lowWaterMark, _highWaterMark); tempStream = new CompressEmulationStream(encodedStream, tempStream, 0, new CompoundFileDeflateTransform()); // return a VersionedStream that works with the VersionedStreamOwner // to verify/update our FormatVersion info return new VersionedStream(tempStream, _versionedStreamOwner); } #endregion ////// constructor /// /// environment ///this should only be used by the DataSpaceManager class public CompressionTransform(TransformEnvironment myEnvironment) { _transformEnvironment = myEnvironment; // Create a wrapper that manages persistence and comparison of FormatVersion // in our InstanceData stream. We can read/write to this stream as needed (though CompressionTransform // does not because we don't house any non-FormatVersion data in the instance data stream). // We need to give out our current code version so it can compare with any file version as appropriate. _versionedStreamOwner = new VersionedStreamOwner( _transformEnvironment.GetPrimaryInstanceData(), new FormatVersion(_featureName, _minimumReaderVersion, _minimumUpdaterVersion, _currentFeatureVersion)); } //------------------------------------------------------ // // Private Data // //----------------------------------------------------- private TransformEnvironment _transformEnvironment; private VersionedStreamOwner _versionedStreamOwner; // our instance data stream wrapped private static readonly string _featureName = "Microsoft.Metadata.CompressionTransform"; private static readonly VersionPair _currentFeatureVersion = new VersionPair(1, 0); private static readonly VersionPair _minimumReaderVersion = new VersionPair(1, 0); private static readonly VersionPair _minimumUpdaterVersion = new VersionPair(1, 0); private const long _lowWaterMark = 0x19000; // we definitely would like to keep everything under 100 KB in memory private const long _highWaterMark = 0xA00000; // we would like to keep everything over 10 MB on disk } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. // Copyright (c) Microsoft Corporation. All rights reserved.
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- CompilationLock.cs
- ResolveCriteriaApril2005.cs
- HwndHost.cs
- ExpandCollapseProviderWrapper.cs
- SupportingTokenProviderSpecification.cs
- MouseGesture.cs
- RoleManagerEventArgs.cs
- HMAC.cs
- DataListGeneralPage.cs
- CodeConditionStatement.cs
- SQLStringStorage.cs
- BeginStoryboard.cs
- NotifyParentPropertyAttribute.cs
- assemblycache.cs
- Composition.cs
- Menu.cs
- ExceptionHelpers.cs
- OpCellTreeNode.cs
- DataGridViewTextBoxEditingControl.cs
- tooltip.cs
- Point4DConverter.cs
- BoolLiteral.cs
- ResourceProperty.cs
- RSAOAEPKeyExchangeFormatter.cs
- PolyBezierSegment.cs
- ConfigXmlSignificantWhitespace.cs
- WindowsUpDown.cs
- ProfessionalColorTable.cs
- WithStatement.cs
- GenericFlowSwitchHelper.cs
- StringBuilder.cs
- XmlSchemaSimpleTypeRestriction.cs
- XmlQueryTypeFactory.cs
- XmlSchemaSequence.cs
- IdleTimeoutMonitor.cs
- StateItem.cs
- TextDecorationCollection.cs
- OdbcConnectionString.cs
- ConfigurationStrings.cs
- WebHostedComPlusServiceHost.cs
- DeploymentSectionCache.cs
- MimeMapping.cs
- ListViewItem.cs
- ServicePointManager.cs
- ToolStripOverflow.cs
- ValuePattern.cs
- HitTestParameters3D.cs
- Triangle.cs
- GeneralTransform3DGroup.cs
- ProviderMetadata.cs
- ContainerControl.cs
- LayoutEditorPart.cs
- Activator.cs
- DataGridViewHitTestInfo.cs
- PriorityRange.cs
- CompilerGeneratedAttribute.cs
- QuotedStringWriteStateInfo.cs
- XmlMapping.cs
- SmtpLoginAuthenticationModule.cs
- RelatedImageListAttribute.cs
- TypeCollectionPropertyEditor.cs
- AsyncPostBackTrigger.cs
- DropSourceBehavior.cs
- SecurityManager.cs
- InfoCardBinaryReader.cs
- ListView.cs
- ExternalException.cs
- SiteOfOriginPart.cs
- RegexBoyerMoore.cs
- ConfigLoader.cs
- StaticDataManager.cs
- ChannelServices.cs
- PenThreadPool.cs
- InternalConfigEventArgs.cs
- TimelineGroup.cs
- BindValidator.cs
- ILGenerator.cs
- SafeNativeMethods.cs
- PermissionToken.cs
- DataGridViewRowCancelEventArgs.cs
- Size3D.cs
- OdbcParameter.cs
- DESCryptoServiceProvider.cs
- DocobjHost.cs
- ThreadAbortException.cs
- SiteMapPath.cs
- WindowsGrip.cs
- DataGridViewCellStyleConverter.cs
- FloatAverageAggregationOperator.cs
- SynchronizationFilter.cs
- InfoCardProofToken.cs
- XmlReflectionMember.cs
- ListItemsCollectionEditor.cs
- Helper.cs
- ListControl.cs
- JsonCollectionDataContract.cs
- MultiTrigger.cs
- ColorConvertedBitmapExtension.cs
- XhtmlBasicPanelAdapter.cs
- BitmapFrameEncode.cs