Code:
/ FXUpdate3074 / FXUpdate3074 / 1.1 / untmp / whidbey / QFE / 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.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- Int16AnimationBase.cs
- ImpersonateTokenRef.cs
- ToolboxItemAttribute.cs
- LazyTextWriterCreator.cs
- SoapServerProtocol.cs
- NameValuePair.cs
- WorkflowOperationFault.cs
- ImageDrawing.cs
- ThumbAutomationPeer.cs
- StylusPlugInCollection.cs
- UnicodeEncoding.cs
- RepeatBehaviorConverter.cs
- _AutoWebProxyScriptHelper.cs
- SoapAttributes.cs
- KerberosSecurityTokenParameters.cs
- Rect.cs
- AutoResetEvent.cs
- DataViewListener.cs
- CodeArrayIndexerExpression.cs
- AutomationAttributeInfo.cs
- Maps.cs
- KeyValueConfigurationCollection.cs
- XmlElementAttributes.cs
- TextCompositionEventArgs.cs
- NativeObjectSecurity.cs
- ComboBox.cs
- DataGridViewSortCompareEventArgs.cs
- LinkClickEvent.cs
- _LocalDataStoreMgr.cs
- KeyNameIdentifierClause.cs
- ElementUtil.cs
- NamespaceDecl.cs
- WorkflowQueueInfo.cs
- CompositeCollection.cs
- EditorZone.cs
- FixedSOMPageElement.cs
- DoneReceivingAsyncResult.cs
- Compilation.cs
- SqlClientPermission.cs
- SchemaManager.cs
- NavigationEventArgs.cs
- WindowsGrip.cs
- CodeTypeReferenceExpression.cs
- ValueTypeFixupInfo.cs
- RightsManagementEncryptedStream.cs
- DirectoryLocalQuery.cs
- DataListItemCollection.cs
- IdentityManager.cs
- relpropertyhelper.cs
- RawUIStateInputReport.cs
- DbDataAdapter.cs
- ViewStateException.cs
- TickBar.cs
- FileDialogPermission.cs
- WebPartMenu.cs
- RegexFCD.cs
- SaveCardRequest.cs
- CurrencyManager.cs
- XmlCustomFormatter.cs
- SiteMapNode.cs
- Error.cs
- Size3DConverter.cs
- XmlMapping.cs
- TargetControlTypeAttribute.cs
- UnsafeNativeMethods.cs
- BitmapEffect.cs
- TokenBasedSetEnumerator.cs
- Globals.cs
- AssemblyBuilder.cs
- HtmlImageAdapter.cs
- KeyPullup.cs
- BodyGlyph.cs
- TextEndOfParagraph.cs
- FormViewPageEventArgs.cs
- TypeElement.cs
- RemoteWebConfigurationHostServer.cs
- DeploymentSection.cs
- GenericNameHandler.cs
- KeyValueConfigurationElement.cs
- Baml6ConstructorInfo.cs
- SchemaElementDecl.cs
- ContainerSelectorGlyph.cs
- TrustLevelCollection.cs
- CodeTypeMember.cs
- InputScopeManager.cs
- WebContext.cs
- sortedlist.cs
- SessionStateUtil.cs
- UpdateManifestForBrowserApplication.cs
- DBConnection.cs
- InkCollectionBehavior.cs
- TextBox.cs
- ColumnHeaderConverter.cs
- CrossSiteScriptingValidation.cs
- FillBehavior.cs
- ModulesEntry.cs
- XmlDocument.cs
- XmlILAnnotation.cs
- UserControl.cs
- TransportContext.cs