Code:
/ 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / wpf / src / Base / MS / Internal / IO / Packaging / CompoundFile / StreamWithDictionary.cs / 1305600 / StreamWithDictionary.cs
//------------------------------------------------------------------------------ // //// Copyright (C) Microsoft Corporation. All rights reserved. // // // Description: // The object for wrapping a data stream and its associated context // information dictionary. // // History: // 07/05/2002: RogerCh: Initial implementation. // 05/20/2003: RogerCh: Ported to WCP tree. // //----------------------------------------------------------------------------- using System; using System.Collections; using System.IO; namespace MS.Internal.IO.Packaging.CompoundFile { internal class StreamWithDictionary : Stream, IDictionary { Stream baseStream; IDictionary baseDictionary; private bool _disposed; // keep track of if we are disposed internal StreamWithDictionary( Stream wrappedStream, IDictionary wrappedDictionary ) { baseStream = wrappedStream; baseDictionary = wrappedDictionary; } /*************************************************************************/ // Stream members public override bool CanRead { get{ return !_disposed && baseStream.CanRead; }} public override bool CanSeek { get { return !_disposed && baseStream.CanSeek; } } public override bool CanWrite { get { return !_disposed && baseStream.CanWrite; } } public override long Length { get { CheckDisposed(); return baseStream.Length; } } public override long Position { get { CheckDisposed(); return baseStream.Position; } set { CheckDisposed(); baseStream.Position = value; } } public override void Flush() { CheckDisposed(); baseStream.Flush(); } public override long Seek( long offset, SeekOrigin origin ) { CheckDisposed(); return baseStream.Seek(offset, origin); } public override void SetLength( long newLength ) { CheckDisposed(); baseStream.SetLength(newLength); } public override int Read( byte[] buffer, int offset, int count ) { CheckDisposed(); return baseStream.Read(buffer, offset, count); } public override void Write( byte[] buffer, int offset, int count ) { CheckDisposed(); baseStream.Write(buffer, offset, count); } //----------------------------------------------------- // // Protected Methods // //----------------------------------------------------- ////// Dispose(bool) /// /// protected override void Dispose(bool disposing) { try { if (disposing && !_disposed) { _disposed = true; baseStream.Close(); } } finally { base.Dispose(disposing); } } /*************************************************************************/ // IDictionary members bool IDictionary.Contains( object key ) { CheckDisposed(); return baseDictionary.Contains(key); } void IDictionary.Add( object key, object val ) { CheckDisposed(); baseDictionary.Add(key, val); } void IDictionary.Clear() { CheckDisposed(); baseDictionary.Clear(); } IDictionaryEnumerator IDictionary.GetEnumerator() { CheckDisposed(); // IDictionary.GetEnumerator vs. IEnumerable.GetEnumerator? return ((IDictionary)baseDictionary).GetEnumerator(); } void IDictionary.Remove( object key ) { CheckDisposed(); baseDictionary.Remove(key); } object IDictionary.this[ object index ] { get { CheckDisposed(); return baseDictionary[index]; } set { CheckDisposed(); baseDictionary[index] = value; } } ICollection IDictionary.Keys { get { CheckDisposed(); return baseDictionary.Keys; } } ICollection IDictionary.Values { get { CheckDisposed(); return baseDictionary.Values; } } bool IDictionary.IsReadOnly { get { CheckDisposed(); return baseDictionary.IsReadOnly; } } bool IDictionary.IsFixedSize { get { CheckDisposed(); return baseDictionary.IsFixedSize; } } /*************************************************************************/ // ICollection methods void ICollection.CopyTo( Array array, int index ) { CheckDisposed(); ((ICollection)baseDictionary).CopyTo(array, index); } int ICollection.Count { get { CheckDisposed(); return ((ICollection)baseDictionary).Count; } } object ICollection.SyncRoot { get { CheckDisposed(); return ((ICollection)baseDictionary).SyncRoot; } } bool ICollection.IsSynchronized { get { CheckDisposed(); return ((ICollection)baseDictionary).IsSynchronized; } } /*************************************************************************/ // IEnumerable method IEnumerator IEnumerable.GetEnumerator() { CheckDisposed(); return ((IEnumerable)baseDictionary).GetEnumerator(); } ////// Disposed - were we disposed? Offer this to DataSpaceManager so it can do smart flushing /// ///internal bool Disposed { get { return _disposed; } } //------------------------------------------------------ // // Private Methods // //----------------------------------------------------- private void CheckDisposed() { if (_disposed) throw new ObjectDisposedException("Stream"); } } } // 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: // The object for wrapping a data stream and its associated context // information dictionary. // // History: // 07/05/2002: RogerCh: Initial implementation. // 05/20/2003: RogerCh: Ported to WCP tree. // //----------------------------------------------------------------------------- using System; using System.Collections; using System.IO; namespace MS.Internal.IO.Packaging.CompoundFile { internal class StreamWithDictionary : Stream, IDictionary { Stream baseStream; IDictionary baseDictionary; private bool _disposed; // keep track of if we are disposed internal StreamWithDictionary( Stream wrappedStream, IDictionary wrappedDictionary ) { baseStream = wrappedStream; baseDictionary = wrappedDictionary; } /*************************************************************************/ // Stream members public override bool CanRead { get{ return !_disposed && baseStream.CanRead; }} public override bool CanSeek { get { return !_disposed && baseStream.CanSeek; } } public override bool CanWrite { get { return !_disposed && baseStream.CanWrite; } } public override long Length { get { CheckDisposed(); return baseStream.Length; } } public override long Position { get { CheckDisposed(); return baseStream.Position; } set { CheckDisposed(); baseStream.Position = value; } } public override void Flush() { CheckDisposed(); baseStream.Flush(); } public override long Seek( long offset, SeekOrigin origin ) { CheckDisposed(); return baseStream.Seek(offset, origin); } public override void SetLength( long newLength ) { CheckDisposed(); baseStream.SetLength(newLength); } public override int Read( byte[] buffer, int offset, int count ) { CheckDisposed(); return baseStream.Read(buffer, offset, count); } public override void Write( byte[] buffer, int offset, int count ) { CheckDisposed(); baseStream.Write(buffer, offset, count); } //----------------------------------------------------- // // Protected Methods // //----------------------------------------------------- ////// Dispose(bool) /// /// protected override void Dispose(bool disposing) { try { if (disposing && !_disposed) { _disposed = true; baseStream.Close(); } } finally { base.Dispose(disposing); } } /*************************************************************************/ // IDictionary members bool IDictionary.Contains( object key ) { CheckDisposed(); return baseDictionary.Contains(key); } void IDictionary.Add( object key, object val ) { CheckDisposed(); baseDictionary.Add(key, val); } void IDictionary.Clear() { CheckDisposed(); baseDictionary.Clear(); } IDictionaryEnumerator IDictionary.GetEnumerator() { CheckDisposed(); // IDictionary.GetEnumerator vs. IEnumerable.GetEnumerator? return ((IDictionary)baseDictionary).GetEnumerator(); } void IDictionary.Remove( object key ) { CheckDisposed(); baseDictionary.Remove(key); } object IDictionary.this[ object index ] { get { CheckDisposed(); return baseDictionary[index]; } set { CheckDisposed(); baseDictionary[index] = value; } } ICollection IDictionary.Keys { get { CheckDisposed(); return baseDictionary.Keys; } } ICollection IDictionary.Values { get { CheckDisposed(); return baseDictionary.Values; } } bool IDictionary.IsReadOnly { get { CheckDisposed(); return baseDictionary.IsReadOnly; } } bool IDictionary.IsFixedSize { get { CheckDisposed(); return baseDictionary.IsFixedSize; } } /*************************************************************************/ // ICollection methods void ICollection.CopyTo( Array array, int index ) { CheckDisposed(); ((ICollection)baseDictionary).CopyTo(array, index); } int ICollection.Count { get { CheckDisposed(); return ((ICollection)baseDictionary).Count; } } object ICollection.SyncRoot { get { CheckDisposed(); return ((ICollection)baseDictionary).SyncRoot; } } bool ICollection.IsSynchronized { get { CheckDisposed(); return ((ICollection)baseDictionary).IsSynchronized; } } /*************************************************************************/ // IEnumerable method IEnumerator IEnumerable.GetEnumerator() { CheckDisposed(); return ((IEnumerable)baseDictionary).GetEnumerator(); } ////// Disposed - were we disposed? Offer this to DataSpaceManager so it can do smart flushing /// ///internal bool Disposed { get { return _disposed; } } //------------------------------------------------------ // // Private Methods // //----------------------------------------------------- private void CheckDisposed() { if (_disposed) throw new ObjectDisposedException("Stream"); } } } // 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
- ComMethodElement.cs
- UIAgentCrashedException.cs
- Stackframe.cs
- CachedFontFace.cs
- DSASignatureDeformatter.cs
- DBConcurrencyException.cs
- InstanceLockQueryResult.cs
- PropertyChangingEventArgs.cs
- DataPointer.cs
- AsyncPostBackErrorEventArgs.cs
- SymbolTable.cs
- HitTestResult.cs
- NonSerializedAttribute.cs
- DateTimeConverter2.cs
- ToolStripSeparatorRenderEventArgs.cs
- CodeTypeMemberCollection.cs
- MexBindingElement.cs
- ComboBoxAutomationPeer.cs
- CorruptStoreException.cs
- JournalEntry.cs
- StatusBarPanel.cs
- UnsignedPublishLicense.cs
- SmiEventSink_DeferedProcessing.cs
- Number.cs
- Drawing.cs
- Encoder.cs
- CloudCollection.cs
- ScriptControlManager.cs
- ContourSegment.cs
- DataGridCellClipboardEventArgs.cs
- EventWaitHandleSecurity.cs
- Range.cs
- EntityContainerEmitter.cs
- MaskDescriptor.cs
- PrimaryKeyTypeConverter.cs
- ConfigurationLocation.cs
- NativeRecognizer.cs
- PrivilegedConfigurationManager.cs
- DesignConnection.cs
- propertyentry.cs
- wgx_commands.cs
- ConfigPathUtility.cs
- COAUTHINFO.cs
- WithStatement.cs
- MappingModelBuildProvider.cs
- InputBuffer.cs
- MultiTrigger.cs
- smtpconnection.cs
- StringCollection.cs
- ExtenderProviderService.cs
- ControlEvent.cs
- ConfigurationPermission.cs
- SchemaImporter.cs
- XmlSchemaComplexContent.cs
- PositiveTimeSpanValidator.cs
- DatePickerDateValidationErrorEventArgs.cs
- SafeWaitHandle.cs
- securitycriticaldataformultiplegetandset.cs
- XsdCachingReader.cs
- GraphicsContext.cs
- ErrorHandlerModule.cs
- cryptoapiTransform.cs
- Bold.cs
- PathData.cs
- CollectionType.cs
- SystemUnicastIPAddressInformation.cs
- storepermission.cs
- MarshalByRefObject.cs
- SiteIdentityPermission.cs
- ByteRangeDownloader.cs
- InkCanvasInnerCanvas.cs
- LocatorManager.cs
- ClientConfigPaths.cs
- DataGridViewSelectedCellsAccessibleObject.cs
- Rules.cs
- WebControlParameterProxy.cs
- DataMemberFieldConverter.cs
- DataViewListener.cs
- DrawingContextDrawingContextWalker.cs
- UnhandledExceptionEventArgs.cs
- RegisteredHiddenField.cs
- ColorAnimationBase.cs
- ObfuscateAssemblyAttribute.cs
- _DisconnectOverlappedAsyncResult.cs
- OverflowException.cs
- MobileSysDescriptionAttribute.cs
- PropertyChangedEventArgs.cs
- TraceContext.cs
- BooleanAnimationUsingKeyFrames.cs
- DataView.cs
- UrlMappingsModule.cs
- TextEmbeddedObject.cs
- SoapFaultCodes.cs
- SHA1Cng.cs
- ListControl.cs
- PrivateUnsafeNativeCompoundFileMethods.cs
- MarkupCompilePass1.cs
- NamedObject.cs
- ReadOnlyActivityGlyph.cs
- CollectionViewGroup.cs