Code:
/ DotNET / DotNET / 8.0 / untmp / whidbey / REDBITS / ndp / fx / src / Xml / System / Xml / BinHexEncoder.cs / 1 / BinHexEncoder.cs
//------------------------------------------------------------------------------ //// Copyright (c) Microsoft Corporation. All rights reserved. // //[....] //----------------------------------------------------------------------------- namespace System.Xml { internal abstract class BinHexEncoder { private const string s_hexDigits = "0123456789ABCDEF"; private const int CharsChunkSize = 128; internal static void Encode( byte[] buffer, int index, int count, XmlWriter writer ) { if ( buffer == null ) { throw new ArgumentNullException( "buffer" ); } if ( index < 0 ) { throw new ArgumentOutOfRangeException( "index" ); } if ( count < 0 ) { throw new ArgumentOutOfRangeException( "count" ); } if ( count > buffer.Length - index ) { throw new ArgumentOutOfRangeException( "count" ); } char[] chars = new char[ ( count * 2 ) < CharsChunkSize ? ( count * 2 ) : CharsChunkSize ]; int endIndex = index + count; while ( index < endIndex ) { int cnt = ( count < CharsChunkSize/2 ) ? count : CharsChunkSize/2; int charCount = Encode( buffer, index, cnt, chars ); writer.WriteRaw( chars, 0, charCount ); index += cnt; count -= cnt; } } internal static string Encode(byte[] inArray, int offsetIn, int count) { if (null == inArray) { throw new ArgumentNullException("inArray"); } if (0 > offsetIn) { throw new ArgumentOutOfRangeException("offsetIn"); } if (0 > count) { throw new ArgumentOutOfRangeException("count"); } if (count > inArray.Length - offsetIn) { throw new ArgumentOutOfRangeException("count"); } char[] outArray = new char[2 * count]; int lenOut = Encode(inArray, offsetIn, count, outArray); return new String(outArray, 0, lenOut); } private static int Encode(byte[] inArray, int offsetIn, int count, char[] outArray) { int curOffsetOut =0, offsetOut = 0; byte b; int lengthOut = outArray.Length; for (int j=0; j> 4]; if (curOffsetOut == lengthOut) { break; } outArray[curOffsetOut ++] = s_hexDigits[b & 0xF]; if (curOffsetOut == lengthOut) { break; } } return curOffsetOut - offsetOut; } // function } // class } // namespace // 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
- DbParameterCollection.cs
- updateconfighost.cs
- DataComponentMethodGenerator.cs
- COM2ICategorizePropertiesHandler.cs
- UseManagedPresentationBindingElement.cs
- Thread.cs
- XmlFormatReaderGenerator.cs
- RelationshipEntry.cs
- UnSafeCharBuffer.cs
- ClientCultureInfo.cs
- DbConnectionOptions.cs
- SecurityTokenReferenceStyle.cs
- ObjectAnimationUsingKeyFrames.cs
- XmlNamespaceManager.cs
- ProfilePropertyNameValidator.cs
- LoginUtil.cs
- QilGeneratorEnv.cs
- PersonalizationStateInfo.cs
- CompareInfo.cs
- OutputCacheProfile.cs
- DbConnectionStringCommon.cs
- SpellerHighlightLayer.cs
- ActivityCodeDomSerializationManager.cs
- NetworkInformationException.cs
- ToolstripProfessionalRenderer.cs
- SystemIPAddressInformation.cs
- FilteredDataSetHelper.cs
- XmlCountingReader.cs
- DataGridItemAutomationPeer.cs
- ExpanderAutomationPeer.cs
- ServiceThrottlingElement.cs
- ScrollItemProviderWrapper.cs
- ItemContainerPattern.cs
- Socket.cs
- Mappings.cs
- FragmentNavigationEventArgs.cs
- GlyphsSerializer.cs
- OutputCacheProfileCollection.cs
- ToggleButtonAutomationPeer.cs
- ProjectionCamera.cs
- securitycriticaldata.cs
- ColumnMapProcessor.cs
- SmtpException.cs
- CompilerGeneratedAttribute.cs
- QueryableDataSourceHelper.cs
- StringArrayConverter.cs
- ContentHostHelper.cs
- figurelengthconverter.cs
- TextPatternIdentifiers.cs
- HttpProcessUtility.cs
- ClockGroup.cs
- CacheHelper.cs
- MetadataCollection.cs
- TextTreePropertyUndoUnit.cs
- SystemWebExtensionsSectionGroup.cs
- BitmapEffectCollection.cs
- DataGridBoolColumn.cs
- StringArrayConverter.cs
- ComponentEvent.cs
- UnsafeNativeMethods.cs
- DefaultAsyncDataDispatcher.cs
- StreamGeometryContext.cs
- RelationshipConstraintValidator.cs
- PropertyGrid.cs
- Part.cs
- SimpleHandlerFactory.cs
- ZipIOModeEnforcingStream.cs
- HMACSHA512.cs
- HostingEnvironment.cs
- ListViewItemSelectionChangedEvent.cs
- TemplatePagerField.cs
- SimpleBitVector32.cs
- TreeViewItemAutomationPeer.cs
- MulticastNotSupportedException.cs
- DesignerContextDescriptor.cs
- CodeTypeMember.cs
- ProfessionalColors.cs
- RegisteredScript.cs
- ObjectStorage.cs
- SqlSupersetValidator.cs
- BevelBitmapEffect.cs
- AttributeInfo.cs
- PropagatorResult.cs
- SQLGuidStorage.cs
- LicFileLicenseProvider.cs
- SecureEnvironment.cs
- DBBindings.cs
- ConfigurationManagerHelperFactory.cs
- CollectionConverter.cs
- WebPartsPersonalization.cs
- SessionStateContainer.cs
- DragEventArgs.cs
- DataListItemEventArgs.cs
- UniformGrid.cs
- MimeTypePropertyAttribute.cs
- ObjectListGeneralPage.cs
- PtsPage.cs
- NativeMethods.cs
- LogLogRecord.cs
- RSAProtectedConfigurationProvider.cs