Code:
/ Dotnetfx_Win7_3.5.1 / Dotnetfx_Win7_3.5.1 / 3.5.1 / DEVDIV / depot / DevDiv / releases / Orcas / NetFXw7 / wpf / src / Shared / MS / Internal / DecoderFallbackWithFailureFlag.cs / 1 / DecoderFallbackWithFailureFlag.cs
//---------------------------------------------------------------------------- // // Copyright (c) Microsoft Corporation. All rights reserved. // // // Description: DecoderFallbackWithFailureFlag is used when the developer wants Encoding.GetChars() method to fail // without throwing an exception when decoding cannot be performed. // Usage pattern is: // DecoderFallbackWithFailureFlag fallback = new DecoderFallbackWithFailureFlag(); // Encoding e = Encoding.GetEncoding(codePage, EncoderFallback.ExceptionFallback, fallback); // e.GetChars(bytesToDecode); // if (fallback.HasFailed) // { // // Perform fallback and reset the failure flag. // fallback.HasFailed = false; // } // // History: // 05/03/2005 : mleonov - Created // //--------------------------------------------------------------------------- using System.Text; namespace MS.Internal { ////// This class is similar to the standard DecoderExceptionFallback class, /// except that for performance reasons it sets a Boolean failure flag /// instead of throwing exception. /// internal class DecoderFallbackWithFailureFlag : DecoderFallback { public DecoderFallbackWithFailureFlag() { } public override DecoderFallbackBuffer CreateFallbackBuffer() { return new FallbackBuffer(this); } ////// The maximum number of characters this instance can return. /// public override int MaxCharCount { get { return 0; } } ////// Returns whether decoding failed. /// public bool HasFailed { get { return _hasFailed; } set { _hasFailed = value; } } private bool _hasFailed; // false by default ////// A special implementation of DecoderFallbackBuffer that sets the failure flag /// in the parent DecoderFallbackWithFailureFlag class. /// private class FallbackBuffer : DecoderFallbackBuffer { public FallbackBuffer(DecoderFallbackWithFailureFlag parent) { _parent = parent; } ////// Indicates whether a substitute string can be emitted if an input byte sequence cannot be decoded. /// Parameters specify an input byte sequence, and the index position of a byte in the input. /// /// An input array of bytes. /// The index position of a byte in bytesUnknown. ///true if a string exists that can be inserted in the output /// instead of decoding the byte specified in bytesUnknown; /// false if the input byte should be ignored. public override bool Fallback(byte[] bytesUnknown, int index) { _parent.HasFailed = true; return false; } ////// Retrieves the next character in the fallback buffer. /// ///The next Unicode character in the fallback buffer. public override char GetNextChar() { return (char)0; } ////// Prepares the GetNextChar method to retrieve the preceding character in the fallback buffer. /// ///true if the MovePrevious operation was successful; otherwise, false. public override bool MovePrevious() { return false; } ////// Gets the number of characters in this instance of DecoderFallbackBuffer that remain to be processed. /// public override int Remaining { get { return 0; } } private DecoderFallbackWithFailureFlag _parent; } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. //---------------------------------------------------------------------------- // // Copyright (c) Microsoft Corporation. All rights reserved. // // // Description: DecoderFallbackWithFailureFlag is used when the developer wants Encoding.GetChars() method to fail // without throwing an exception when decoding cannot be performed. // Usage pattern is: // DecoderFallbackWithFailureFlag fallback = new DecoderFallbackWithFailureFlag(); // Encoding e = Encoding.GetEncoding(codePage, EncoderFallback.ExceptionFallback, fallback); // e.GetChars(bytesToDecode); // if (fallback.HasFailed) // { // // Perform fallback and reset the failure flag. // fallback.HasFailed = false; // } // // History: // 05/03/2005 : mleonov - Created // //--------------------------------------------------------------------------- using System.Text; namespace MS.Internal { ////// This class is similar to the standard DecoderExceptionFallback class, /// except that for performance reasons it sets a Boolean failure flag /// instead of throwing exception. /// internal class DecoderFallbackWithFailureFlag : DecoderFallback { public DecoderFallbackWithFailureFlag() { } public override DecoderFallbackBuffer CreateFallbackBuffer() { return new FallbackBuffer(this); } ////// The maximum number of characters this instance can return. /// public override int MaxCharCount { get { return 0; } } ////// Returns whether decoding failed. /// public bool HasFailed { get { return _hasFailed; } set { _hasFailed = value; } } private bool _hasFailed; // false by default ////// A special implementation of DecoderFallbackBuffer that sets the failure flag /// in the parent DecoderFallbackWithFailureFlag class. /// private class FallbackBuffer : DecoderFallbackBuffer { public FallbackBuffer(DecoderFallbackWithFailureFlag parent) { _parent = parent; } ////// Indicates whether a substitute string can be emitted if an input byte sequence cannot be decoded. /// Parameters specify an input byte sequence, and the index position of a byte in the input. /// /// An input array of bytes. /// The index position of a byte in bytesUnknown. ///true if a string exists that can be inserted in the output /// instead of decoding the byte specified in bytesUnknown; /// false if the input byte should be ignored. public override bool Fallback(byte[] bytesUnknown, int index) { _parent.HasFailed = true; return false; } ////// Retrieves the next character in the fallback buffer. /// ///The next Unicode character in the fallback buffer. public override char GetNextChar() { return (char)0; } ////// Prepares the GetNextChar method to retrieve the preceding character in the fallback buffer. /// ///true if the MovePrevious operation was successful; otherwise, false. public override bool MovePrevious() { return false; } ////// Gets the number of characters in this instance of DecoderFallbackBuffer that remain to be processed. /// public override int Remaining { get { return 0; } } private DecoderFallbackWithFailureFlag _parent; } } } // 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
- TextServicesManager.cs
- StylusPointProperty.cs
- PageCopyCount.cs
- ReaderContextStackData.cs
- unsafeIndexingFilterStream.cs
- ProfilePropertyMetadata.cs
- QueryNode.cs
- ListenerElementsCollection.cs
- QueryExpression.cs
- Visitors.cs
- DesignerCatalogPartChrome.cs
- DesignerAdapterAttribute.cs
- ExpressionContext.cs
- EventLogPermissionEntry.cs
- XPathAncestorIterator.cs
- ACE.cs
- PerspectiveCamera.cs
- DbReferenceCollection.cs
- SafeLocalAllocation.cs
- ServiceContractAttribute.cs
- SqlConnectionPoolGroupProviderInfo.cs
- WMIGenerator.cs
- IPAddressCollection.cs
- IPipelineRuntime.cs
- EnumMemberAttribute.cs
- Root.cs
- SecurityHelper.cs
- List.cs
- XmlSerializationGeneratedCode.cs
- ClientConfigPaths.cs
- TraceFilter.cs
- ReflectionTypeLoadException.cs
- DbConnectionPoolIdentity.cs
- SystemColors.cs
- HttpStreamXmlDictionaryWriter.cs
- webclient.cs
- HttpConfigurationSystem.cs
- DbDataReader.cs
- SqlBuffer.cs
- SqlCacheDependency.cs
- SimpleApplicationHost.cs
- ListControlStringCollectionEditor.cs
- CharacterMetricsDictionary.cs
- Config.cs
- WindowsGraphicsCacheManager.cs
- SmtpNetworkElement.cs
- MarkupExtensionParser.cs
- XmlAttributeHolder.cs
- ChildTable.cs
- SmtpSection.cs
- Ray3DHitTestResult.cs
- ManifestResourceInfo.cs
- RectAnimation.cs
- CodeSubDirectory.cs
- SspiSecurityTokenProvider.cs
- PackagePartCollection.cs
- RequestCacheValidator.cs
- ITreeGenerator.cs
- SqlFileStream.cs
- CellTreeNode.cs
- QilPatternFactory.cs
- XPathSingletonIterator.cs
- MergeLocalizationDirectives.cs
- ControlTemplate.cs
- XmlNotation.cs
- SamlNameIdentifierClaimResource.cs
- GenericEnumConverter.cs
- XmlNamespaceDeclarationsAttribute.cs
- storepermissionattribute.cs
- ProjectedSlot.cs
- EventArgs.cs
- DataReaderContainer.cs
- XamlToRtfWriter.cs
- SmiSettersStream.cs
- OdbcConnectionFactory.cs
- Model3DGroup.cs
- DataColumnPropertyDescriptor.cs
- BinHexDecoder.cs
- glyphs.cs
- PartitionerQueryOperator.cs
- ConditionalAttribute.cs
- PersonalizationStateInfoCollection.cs
- MachinePropertyVariants.cs
- PermissionToken.cs
- Int16Animation.cs
- IDQuery.cs
- PolyLineSegmentFigureLogic.cs
- Merger.cs
- TypefaceMap.cs
- Int16Animation.cs
- Variable.cs
- dtdvalidator.cs
- XmlLinkedNode.cs
- StackSpiller.cs
- TokenFactoryFactory.cs
- OracleCommand.cs
- GenerateTemporaryTargetAssembly.cs
- _RequestCacheProtocol.cs
- FileUtil.cs
- ScrollChrome.cs