Code:
/ FX-1434 / FX-1434 / 1.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
- BitmapEffectRenderDataResource.cs
- Rights.cs
- ObjectQuery.cs
- ElementHostAutomationPeer.cs
- SchemaCollectionCompiler.cs
- CoTaskMemSafeHandle.cs
- UTF7Encoding.cs
- NonVisualControlAttribute.cs
- CodeExpressionRuleDeclaration.cs
- SqlDependency.cs
- TabPage.cs
- ListView.cs
- ProviderException.cs
- PerfService.cs
- OdbcUtils.cs
- PersonalizationProviderCollection.cs
- MenuItemStyle.cs
- MailHeaderInfo.cs
- LinearGradientBrush.cs
- URI.cs
- BindingBase.cs
- CultureSpecificCharacterBufferRange.cs
- AttributeCollection.cs
- SqlDataSourceEnumerator.cs
- InteropAutomationProvider.cs
- TextContainer.cs
- unitconverter.cs
- StateDesigner.TransitionInfo.cs
- RegisteredArrayDeclaration.cs
- HierarchicalDataBoundControl.cs
- SrgsElementFactory.cs
- DataGridView.cs
- OciLobLocator.cs
- PrintPreviewDialog.cs
- WebHeaderCollection.cs
- translator.cs
- altserialization.cs
- CommonObjectSecurity.cs
- XmlEncodedRawTextWriter.cs
- WebPartChrome.cs
- httpstaticobjectscollection.cs
- CharEntityEncoderFallback.cs
- StructuredTypeInfo.cs
- DescendentsWalkerBase.cs
- AttributeXamlType.cs
- ResXBuildProvider.cs
- Action.cs
- TrustManagerMoreInformation.cs
- HtmlInputSubmit.cs
- DummyDataSource.cs
- ApplicationGesture.cs
- URIFormatException.cs
- ImageFormat.cs
- GraphicsState.cs
- xsdvalidator.cs
- RoutedEventArgs.cs
- SimplePropertyEntry.cs
- RSACryptoServiceProvider.cs
- NativeCompoundFileAPIs.cs
- PersonalizationProviderCollection.cs
- Figure.cs
- MatrixConverter.cs
- CardSpaceSelector.cs
- ProcessThread.cs
- MinimizableAttributeTypeConverter.cs
- ImportCatalogPart.cs
- DataException.cs
- XmlWhitespace.cs
- LinqDataSourceUpdateEventArgs.cs
- GlobalizationSection.cs
- JsonReader.cs
- EventProviderClassic.cs
- PassportAuthentication.cs
- CodeArrayCreateExpression.cs
- DispatchChannelSink.cs
- Trustee.cs
- EdgeProfileValidation.cs
- ToolStripItemTextRenderEventArgs.cs
- ParagraphVisual.cs
- QuaternionIndependentAnimationStorage.cs
- AddInServer.cs
- DecimalAnimation.cs
- AccessibleObject.cs
- DataTableTypeConverter.cs
- ParserHooks.cs
- ProtocolsConfiguration.cs
- XmlComplianceUtil.cs
- PointValueSerializer.cs
- GridViewRowEventArgs.cs
- ElementHostPropertyMap.cs
- BuildResultCache.cs
- Ref.cs
- InvokeMethodActivityDesigner.cs
- OutputCacheSettingsSection.cs
- InfiniteIntConverter.cs
- ListViewGroupItemCollection.cs
- AggregateNode.cs
- FunctionCommandText.cs
- HttpEncoderUtility.cs
- SymmetricAlgorithm.cs