Code:
/ Dotnetfx_Win7_3.5.1 / Dotnetfx_Win7_3.5.1 / 3.5.1 / DEVDIV / depot / DevDiv / releases / Orcas / NetFXw7 / wpf / src / Base / MS / Internal / IO / Packaging / CompoundFile / StreamWithDictionary.cs / 1 / 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
- XmlNamespaceMapping.cs
- DefaultMemberAttribute.cs
- XmlSchemaException.cs
- CheckableControlBaseAdapter.cs
- ConfigurationLocation.cs
- UpnEndpointIdentityExtension.cs
- PackagePart.cs
- ObjectDesignerDataSourceView.cs
- DecimalAnimationUsingKeyFrames.cs
- ObjectToken.cs
- DataGridHeaderBorder.cs
- CodeExpressionCollection.cs
- ScriptRegistrationManager.cs
- TypeUtils.cs
- DeclaredTypeValidator.cs
- WindowsAuthenticationEventArgs.cs
- RandomNumberGenerator.cs
- CharStorage.cs
- PreloadedPackages.cs
- HelloMessageApril2005.cs
- SizeAnimationUsingKeyFrames.cs
- Lasso.cs
- TextDecorationCollection.cs
- RedistVersionInfo.cs
- Transform.cs
- ZipIOCentralDirectoryFileHeader.cs
- DSASignatureDeformatter.cs
- ParamArrayAttribute.cs
- EntityConnectionStringBuilder.cs
- WebPartCatalogCloseVerb.cs
- EFColumnProvider.cs
- Section.cs
- TypeDelegator.cs
- BuildDependencySet.cs
- SmtpCommands.cs
- XsdBuildProvider.cs
- LineSegment.cs
- ipaddressinformationcollection.cs
- ModuleBuilder.cs
- AspCompat.cs
- ExpiredSecurityTokenException.cs
- UnmanagedMarshal.cs
- EventToken.cs
- HtmlElementErrorEventArgs.cs
- PropertyItemInternal.cs
- Rotation3DAnimation.cs
- EditorZone.cs
- OleDbConnectionFactory.cs
- RotateTransform.cs
- StylusPointCollection.cs
- DescendentsWalkerBase.cs
- Accessors.cs
- LinearQuaternionKeyFrame.cs
- FusionWrap.cs
- _DynamicWinsockMethods.cs
- DefaultExpressionVisitor.cs
- prefixendpointaddressmessagefiltertable.cs
- Polygon.cs
- PtsHost.cs
- IndexerNameAttribute.cs
- LiteralControl.cs
- RawStylusInputCustomDataList.cs
- EnglishPluralizationService.cs
- Propagator.Evaluator.cs
- BroadcastEventHelper.cs
- FileClassifier.cs
- SHA1.cs
- DataControlField.cs
- GetPageCompletedEventArgs.cs
- ContourSegment.cs
- DbDataRecord.cs
- UriParserTemplates.cs
- ReadOnlyDataSourceView.cs
- ItemCheckedEvent.cs
- ConditionCollection.cs
- MaterialGroup.cs
- CaseInsensitiveOrdinalStringComparer.cs
- AnnotationHighlightLayer.cs
- ScrollData.cs
- EmptyTextWriter.cs
- CaseInsensitiveHashCodeProvider.cs
- XmlAutoDetectWriter.cs
- DesignerActionUIStateChangeEventArgs.cs
- DSACryptoServiceProvider.cs
- InputScopeConverter.cs
- WebPartConnectionsEventArgs.cs
- MexNamedPipeBindingCollectionElement.cs
- InfoCardTrace.cs
- SharedPersonalizationStateInfo.cs
- ReadWriteObjectLock.cs
- BindingMemberInfo.cs
- ElasticEase.cs
- SoapFault.cs
- CodeIterationStatement.cs
- ScriptResourceInfo.cs
- SoundPlayerAction.cs
- SqlCharStream.cs
- RetrieveVirtualItemEventArgs.cs
- EdmToObjectNamespaceMap.cs
- MaskDesignerDialog.cs