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
- DataControlFieldCell.cs
- QueryPageSettingsEventArgs.cs
- Empty.cs
- ProcessThread.cs
- TypeTypeConverter.cs
- DynamicFilter.cs
- GeneralTransform3DCollection.cs
- NameHandler.cs
- DrawingContext.cs
- ControlPager.cs
- FrameworkContentElement.cs
- HwndSource.cs
- EndGetFileNameFromUserRequest.cs
- StrokeDescriptor.cs
- AudioBase.cs
- ThrowHelper.cs
- RequestQueryParser.cs
- DataGridRelationshipRow.cs
- AudioDeviceOut.cs
- PathGeometry.cs
- DbProviderFactory.cs
- DecoderFallbackWithFailureFlag.cs
- TableLayoutSettingsTypeConverter.cs
- FontSizeConverter.cs
- ResourceContainer.cs
- ScriptBehaviorDescriptor.cs
- MetadataUtil.cs
- AdapterDictionary.cs
- DbCommandTree.cs
- GeometryModel3D.cs
- ByteStack.cs
- ByteKeyFrameCollection.cs
- WindowsStartMenu.cs
- LocatorBase.cs
- StringFunctions.cs
- CqlParserHelpers.cs
- MDIClient.cs
- Brush.cs
- CultureTableRecord.cs
- BoolExpression.cs
- ExpressionConverter.cs
- DefaultTextStore.cs
- SerializationInfo.cs
- MaskDescriptor.cs
- ZeroOpNode.cs
- ReferenceEqualityComparer.cs
- MenuBase.cs
- FilterQuery.cs
- XmlReflectionImporter.cs
- XslCompiledTransform.cs
- LowerCaseStringConverter.cs
- DataBindingCollection.cs
- TypeUtil.cs
- SqlConnectionHelper.cs
- IndentedWriter.cs
- TreeNodeCollectionEditor.cs
- ProtocolsConfigurationEntry.cs
- ServiceContractListItemList.cs
- RelatedEnd.cs
- ScriptResourceHandler.cs
- SrgsItemList.cs
- ReceiveMessageRecord.cs
- UpdateException.cs
- HyperLinkStyle.cs
- EditorPart.cs
- ServiceEndpoint.cs
- PasswordRecovery.cs
- TdsParserStateObject.cs
- TextViewElement.cs
- RegionIterator.cs
- X509WindowsSecurityToken.cs
- ContentPlaceHolder.cs
- HtmlForm.cs
- Model3DCollection.cs
- NamedPipeTransportBindingElement.cs
- SerialErrors.cs
- LookupNode.cs
- SchemaTableOptionalColumn.cs
- OleDbConnection.cs
- QueryableFilterRepeater.cs
- AuthenticateEventArgs.cs
- Container.cs
- ButtonFlatAdapter.cs
- ChoiceConverter.cs
- StrokeNodeData.cs
- XmlAnyAttributeAttribute.cs
- JsonReaderWriterFactory.cs
- DiscoveryMessageSequence11.cs
- XmlValidatingReader.cs
- TextSpanModifier.cs
- LinqDataSourceEditData.cs
- RightsManagementEncryptedStream.cs
- ComponentManagerBroker.cs
- Win32NamedPipes.cs
- ZipIOExtraFieldPaddingElement.cs
- CodeArgumentReferenceExpression.cs
- ListViewPagedDataSource.cs
- RemoveStoryboard.cs
- NullableDecimalSumAggregationOperator.cs
- SpeechRecognitionEngine.cs