Code:
/ Net / Net / 3.5.50727.3053 / DEVDIV / depot / DevDiv / releases / whidbey / netfxsp / ndp / fx / src / Xml / System / Xml / Core / IncrementalReadDecoders.cs / 1 / IncrementalReadDecoders.cs
//------------------------------------------------------------------------------ //// Copyright (c) Microsoft Corporation. All rights reserved. // //[....] //----------------------------------------------------------------------------- using System.Diagnostics; namespace System.Xml { // // IncrementalReadDecoder abstract class // internal abstract class IncrementalReadDecoder { internal abstract int DecodedCount { get; } internal abstract bool IsFull { get; } internal abstract void SetNextOutputBuffer( Array array, int offset, int len ); internal abstract int Decode( char[] chars, int startPos, int len ); internal abstract int Decode( string str, int startPos, int len ); internal abstract void Reset(); } // // Dummy IncrementalReadDecoder // internal class IncrementalReadDummyDecoder : IncrementalReadDecoder { internal override int DecodedCount { get { return -1; } } internal override bool IsFull { get { return false; } } internal override void SetNextOutputBuffer( Array array, int offset, int len ) {} internal override int Decode( char[] chars, int startPos, int len ) { return len; } internal override int Decode( string str, int startPos, int len ) { return len; } internal override void Reset() {} } // // IncrementalReadDecoder for ReadChars // internal class IncrementalReadCharsDecoder : IncrementalReadDecoder { char[] buffer; int startIndex; int curIndex; int endIndex; internal IncrementalReadCharsDecoder() { } internal override int DecodedCount { get { return curIndex - startIndex; } } internal override bool IsFull { get { return curIndex == endIndex; } } internal override int Decode( char[] chars, int startPos, int len ) { Debug.Assert( chars != null ); Debug.Assert( len >= 0 ); Debug.Assert( startPos >= 0 ); Debug.Assert( chars.Length - startPos >= len ); Debug.Assert( len > 0 ); int copyCount = endIndex - curIndex; if ( copyCount > len ) { copyCount = len; } Buffer.BlockCopy( chars, startPos * 2, buffer, curIndex * 2, copyCount * 2 ); curIndex += copyCount; return copyCount; } internal override int Decode( string str, int startPos, int len ) { Debug.Assert( str != null ); Debug.Assert( len >= 0 ); Debug.Assert( startPos >= 0 ); Debug.Assert( str.Length - startPos >= len ); Debug.Assert( len > 0 ); int copyCount = endIndex - curIndex; if ( copyCount > len ) { copyCount = len; } str.CopyTo( startPos, buffer, curIndex, copyCount ); curIndex += copyCount; return copyCount; } internal override void Reset() { } internal override void SetNextOutputBuffer( Array buffer, int index, int count ) { Debug.Assert( buffer != null ); Debug.Assert( count >= 0 ); Debug.Assert( index >= 0 ); Debug.Assert( buffer.Length - index >= count ); Debug.Assert( ( buffer as char[] ) != null ); this.buffer = (char[])buffer; this.startIndex = index; this.curIndex = index; this.endIndex = index + count; } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. //------------------------------------------------------------------------------ //// Copyright (c) Microsoft Corporation. All rights reserved. // //[....] //----------------------------------------------------------------------------- using System.Diagnostics; namespace System.Xml { // // IncrementalReadDecoder abstract class // internal abstract class IncrementalReadDecoder { internal abstract int DecodedCount { get; } internal abstract bool IsFull { get; } internal abstract void SetNextOutputBuffer( Array array, int offset, int len ); internal abstract int Decode( char[] chars, int startPos, int len ); internal abstract int Decode( string str, int startPos, int len ); internal abstract void Reset(); } // // Dummy IncrementalReadDecoder // internal class IncrementalReadDummyDecoder : IncrementalReadDecoder { internal override int DecodedCount { get { return -1; } } internal override bool IsFull { get { return false; } } internal override void SetNextOutputBuffer( Array array, int offset, int len ) {} internal override int Decode( char[] chars, int startPos, int len ) { return len; } internal override int Decode( string str, int startPos, int len ) { return len; } internal override void Reset() {} } // // IncrementalReadDecoder for ReadChars // internal class IncrementalReadCharsDecoder : IncrementalReadDecoder { char[] buffer; int startIndex; int curIndex; int endIndex; internal IncrementalReadCharsDecoder() { } internal override int DecodedCount { get { return curIndex - startIndex; } } internal override bool IsFull { get { return curIndex == endIndex; } } internal override int Decode( char[] chars, int startPos, int len ) { Debug.Assert( chars != null ); Debug.Assert( len >= 0 ); Debug.Assert( startPos >= 0 ); Debug.Assert( chars.Length - startPos >= len ); Debug.Assert( len > 0 ); int copyCount = endIndex - curIndex; if ( copyCount > len ) { copyCount = len; } Buffer.BlockCopy( chars, startPos * 2, buffer, curIndex * 2, copyCount * 2 ); curIndex += copyCount; return copyCount; } internal override int Decode( string str, int startPos, int len ) { Debug.Assert( str != null ); Debug.Assert( len >= 0 ); Debug.Assert( startPos >= 0 ); Debug.Assert( str.Length - startPos >= len ); Debug.Assert( len > 0 ); int copyCount = endIndex - curIndex; if ( copyCount > len ) { copyCount = len; } str.CopyTo( startPos, buffer, curIndex, copyCount ); curIndex += copyCount; return copyCount; } internal override void Reset() { } internal override void SetNextOutputBuffer( Array buffer, int index, int count ) { Debug.Assert( buffer != null ); Debug.Assert( count >= 0 ); Debug.Assert( index >= 0 ); Debug.Assert( buffer.Length - index >= count ); Debug.Assert( ( buffer as char[] ) != null ); this.buffer = (char[])buffer; this.startIndex = index; this.curIndex = index; this.endIndex = index + count; } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- ImmutablePropertyDescriptorGridEntry.cs
- RemotingService.cs
- FillRuleValidation.cs
- OleDbErrorCollection.cs
- BaseEntityWrapper.cs
- SqlIdentifier.cs
- FontDialog.cs
- tabpagecollectioneditor.cs
- OAVariantLib.cs
- ServiceOperationParameter.cs
- Descriptor.cs
- BezierSegment.cs
- FaultFormatter.cs
- ConstructorArgumentAttribute.cs
- GregorianCalendar.cs
- Misc.cs
- EdmFunctions.cs
- WebPartConnectionsCancelEventArgs.cs
- DomNameTable.cs
- ContractAdapter.cs
- URLAttribute.cs
- TemplateBindingExpressionConverter.cs
- ContractAdapter.cs
- PostBackOptions.cs
- RSAPKCS1KeyExchangeDeformatter.cs
- TrustLevel.cs
- Pair.cs
- Version.cs
- WindowsTokenRoleProvider.cs
- SessionEndedEventArgs.cs
- AutoGeneratedFieldProperties.cs
- HtmlControlPersistable.cs
- PriorityItem.cs
- VersionPair.cs
- GrabHandleGlyph.cs
- WindowsFormsHostAutomationPeer.cs
- InstanceHandle.cs
- Expression.cs
- elementinformation.cs
- ObjectDataSourceFilteringEventArgs.cs
- basenumberconverter.cs
- NetworkStream.cs
- StoreContentChangedEventArgs.cs
- Utils.cs
- LockedAssemblyCache.cs
- CompiledQueryCacheEntry.cs
- HtmlInputReset.cs
- ToolStripContentPanel.cs
- PresentationTraceSources.cs
- SmiGettersStream.cs
- SplayTreeNode.cs
- XmlChildEnumerator.cs
- dtdvalidator.cs
- CatalogPartChrome.cs
- TextViewBase.cs
- WsatAdminException.cs
- WebPartMinimizeVerb.cs
- ParenthesizePropertyNameAttribute.cs
- PublishLicense.cs
- GuidTagList.cs
- ResolveNameEventArgs.cs
- StateMachineHelpers.cs
- StateDesigner.TransitionInfo.cs
- FilterEventArgs.cs
- DataBinding.cs
- ProfileService.cs
- FaultConverter.cs
- EqualityComparer.cs
- WriteableBitmap.cs
- CustomSignedXml.cs
- DataControlFieldHeaderCell.cs
- TextTreeObjectNode.cs
- HMACMD5.cs
- DataServiceClientException.cs
- HandlerBase.cs
- AssemblyCache.cs
- XmlUTF8TextReader.cs
- AnnotationAdorner.cs
- NotImplementedException.cs
- LabelEditEvent.cs
- FormsAuthenticationConfiguration.cs
- CommonEndpointBehaviorElement.cs
- PropertyOverridesTypeEditor.cs
- TextTabProperties.cs
- DecoderExceptionFallback.cs
- MsmqBindingFilter.cs
- ObfuscateAssemblyAttribute.cs
- EDesignUtil.cs
- XmlElementAttributes.cs
- DataTrigger.cs
- PTProvider.cs
- ObjectParameter.cs
- UnitySerializationHolder.cs
- FilterQuery.cs
- CustomErrorsSectionWrapper.cs
- Process.cs
- StopStoryboard.cs
- SettingsPropertyNotFoundException.cs
- BCLDebug.cs
- DbProviderFactories.cs