Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / Xml / System / Xml / Core / IncrementalReadDecoders.cs / 1305376 / 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(); } #if !SILVERLIGHT // Needed only for XmlTextReader // // 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; } } #endif } // 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
- ChangePasswordAutoFormat.cs
- FrameworkElementFactory.cs
- TypeInitializationException.cs
- FormViewUpdateEventArgs.cs
- DataControlLinkButton.cs
- ParsedAttributeCollection.cs
- CopyAttributesAction.cs
- ErrorStyle.cs
- TreeViewAutomationPeer.cs
- MatrixIndependentAnimationStorage.cs
- embossbitmapeffect.cs
- WizardPanel.cs
- CodeConditionStatement.cs
- MetadataUtil.cs
- ManagedWndProcTracker.cs
- SmiEventSink.cs
- GridProviderWrapper.cs
- HyperLinkStyle.cs
- ListItem.cs
- SQLSingle.cs
- ObjectListItemCollection.cs
- TreeViewCancelEvent.cs
- TraceSection.cs
- ExtentCqlBlock.cs
- MissingSatelliteAssemblyException.cs
- EnvironmentPermission.cs
- HeaderUtility.cs
- Span.cs
- SspiHelper.cs
- Model3D.cs
- PolyLineSegment.cs
- Column.cs
- WebRequestModulesSection.cs
- SyntaxCheck.cs
- UTF8Encoding.cs
- SecurityUniqueId.cs
- CountAggregationOperator.cs
- WindowsPen.cs
- HtmlDocument.cs
- CharacterBufferReference.cs
- HitTestParameters.cs
- CodeCompileUnit.cs
- KnownBoxes.cs
- DataControlButton.cs
- CommonRemoteMemoryBlock.cs
- ExceptionUtil.cs
- QuaternionKeyFrameCollection.cs
- WCFServiceClientProxyGenerator.cs
- MenuItem.cs
- SafeRightsManagementPubHandle.cs
- RepeaterItemEventArgs.cs
- mediaeventargs.cs
- KeyNotFoundException.cs
- Add.cs
- XPathDescendantIterator.cs
- JulianCalendar.cs
- WindowsGraphicsCacheManager.cs
- ProcessProtocolHandler.cs
- PropertyManager.cs
- MinMaxParagraphWidth.cs
- ExtensibleClassFactory.cs
- TypeGeneratedEventArgs.cs
- HtmlButton.cs
- IIS7UserPrincipal.cs
- PathFigureCollection.cs
- MouseOverProperty.cs
- DbResourceAllocator.cs
- RepeaterItem.cs
- TreeViewAutomationPeer.cs
- SelectingProviderEventArgs.cs
- FileSecurity.cs
- RegistrationServices.cs
- UnsafeNativeMethods.cs
- UserControl.cs
- XmlReader.cs
- ThreadNeutralSemaphore.cs
- UrlMappingsSection.cs
- BevelBitmapEffect.cs
- CodeGeneratorOptions.cs
- CultureInfoConverter.cs
- SiteMembershipCondition.cs
- Msec.cs
- QueryStringHandler.cs
- CustomCategoryAttribute.cs
- SQLInt16Storage.cs
- CodeTypeOfExpression.cs
- AttributeQuery.cs
- SelectionItemPattern.cs
- RealProxy.cs
- LogLogRecordEnumerator.cs
- GPRECT.cs
- WebDisplayNameAttribute.cs
- BaseCollection.cs
- TextBoxAutomationPeer.cs
- Frame.cs
- SafeBitVector32.cs
- ListViewDataItem.cs
- AddInContractAttribute.cs
- UnitySerializationHolder.cs
- SqlUDTStorage.cs