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
- SamlSubjectStatement.cs
- ImageDrawing.cs
- DbConnectionInternal.cs
- JavaScriptSerializer.cs
- MaskDescriptor.cs
- HttpInputStream.cs
- SmtpSection.cs
- ObjectStateEntryBaseUpdatableDataRecord.cs
- SectionXmlInfo.cs
- RoutedEventHandlerInfo.cs
- Ppl.cs
- RemotingConfigParser.cs
- RootBrowserWindowProxy.cs
- VerticalAlignConverter.cs
- Quad.cs
- ConsoleKeyInfo.cs
- DeclarativeCatalogPart.cs
- CheckBox.cs
- WebConfigurationManager.cs
- QueryStringHandler.cs
- ToolStripDropDownButton.cs
- FileDialogCustomPlace.cs
- EntityModelBuildProvider.cs
- X500Name.cs
- PipelineModuleStepContainer.cs
- TrustLevel.cs
- RefType.cs
- ModuleConfigurationInfo.cs
- ToolStripSplitButton.cs
- DeflateStream.cs
- DbDataAdapter.cs
- SafeNativeMethods.cs
- Int32Storage.cs
- SystemNetworkInterface.cs
- FormViewPagerRow.cs
- RotateTransform3D.cs
- ScrollChrome.cs
- Content.cs
- EnumerableRowCollectionExtensions.cs
- BamlTreeUpdater.cs
- AutomationPatternInfo.cs
- DoubleCollection.cs
- FileStream.cs
- FloaterBaseParaClient.cs
- DateTimeConverter.cs
- TextSegment.cs
- XmlSerializationReader.cs
- MinMaxParagraphWidth.cs
- SynthesizerStateChangedEventArgs.cs
- ThemeDictionaryExtension.cs
- IndexedSelectQueryOperator.cs
- CollectionConverter.cs
- DefinitionBase.cs
- ProfileEventArgs.cs
- CacheMemory.cs
- ComEventsHelper.cs
- PropertyChangingEventArgs.cs
- HideDisabledControlAdapter.cs
- KeyGesture.cs
- BitmapCache.cs
- CLSCompliantAttribute.cs
- HandlerMappingMemo.cs
- LineGeometry.cs
- MeshGeometry3D.cs
- ViewCellSlot.cs
- DictionaryEditChange.cs
- NativeMethods.cs
- path.cs
- TraceLog.cs
- RenderData.cs
- XsltException.cs
- TraceHandler.cs
- ClosableStream.cs
- CodeMemberField.cs
- ResourceAttributes.cs
- GACIdentityPermission.cs
- IsolatedStorageException.cs
- EdmItemCollection.cs
- AssemblyAttributes.cs
- XmlWrappingWriter.cs
- Point4DConverter.cs
- DynamicPropertyReader.cs
- XmlSchemaAttribute.cs
- EventSinkActivityDesigner.cs
- EmptyCollection.cs
- InternalCache.cs
- SQLDouble.cs
- CounterSampleCalculator.cs
- WmfPlaceableFileHeader.cs
- ByteStreamMessage.cs
- MobileErrorInfo.cs
- ValueUtilsSmi.cs
- TitleStyle.cs
- RightsManagementInformation.cs
- ResourceDictionaryCollection.cs
- OrderablePartitioner.cs
- WebPartConnectionsConnectVerb.cs
- SafeEventLogReadHandle.cs
- CharacterHit.cs
- UpdateRecord.cs