Code:
/ 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / Xml / System / Xml / BinHexEncoder.cs / 1305376 / BinHexEncoder.cs
//------------------------------------------------------------------------------ //// Copyright (c) Microsoft Corporation. All rights reserved. // //[....] //----------------------------------------------------------------------------- namespace System.Xml { internal static 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. // //[....] //----------------------------------------------------------------------------- namespace System.Xml { internal static 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.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- KoreanCalendar.cs
- UpdateCompiler.cs
- ProviderCollection.cs
- ObjectSet.cs
- Decorator.cs
- ServiceObjectContainer.cs
- TemplateApplicationHelper.cs
- ADMembershipProvider.cs
- TransformerInfo.cs
- XmlNodeWriter.cs
- ScriptServiceAttribute.cs
- EntityConnection.cs
- NestedContainer.cs
- ProfileEventArgs.cs
- MulticastDelegate.cs
- NamespaceInfo.cs
- BooleanToVisibilityConverter.cs
- Wizard.cs
- NumberSubstitution.cs
- TypeConverterAttribute.cs
- Fonts.cs
- EntityException.cs
- SqlGenericUtil.cs
- ResourceContainer.cs
- ExceptionHelpers.cs
- SafeHandles.cs
- RowTypeElement.cs
- DataList.cs
- HttpDebugHandler.cs
- ModelItemKeyValuePair.cs
- RepeatBehavior.cs
- ProcessInfo.cs
- BrowserCapabilitiesFactory.cs
- CqlWriter.cs
- NetSectionGroup.cs
- IndependentAnimationStorage.cs
- SchemaElementLookUpTableEnumerator.cs
- Bits.cs
- WindowInteractionStateTracker.cs
- UrlAuthorizationModule.cs
- SpeechSynthesizer.cs
- XPathNodePointer.cs
- MetadataPropertyvalue.cs
- DocumentApplicationState.cs
- AvTraceFormat.cs
- TheQuery.cs
- InputEventArgs.cs
- WebPartAddingEventArgs.cs
- CrossContextChannel.cs
- ZipIOModeEnforcingStream.cs
- ComplexPropertyEntry.cs
- CheckBoxBaseAdapter.cs
- FollowerQueueCreator.cs
- QueryCreatedEventArgs.cs
- FirstMatchCodeGroup.cs
- TextEditorParagraphs.cs
- ApplicationGesture.cs
- EntryIndex.cs
- SoapClientMessage.cs
- cookie.cs
- COM2ExtendedBrowsingHandler.cs
- GridViewUpdateEventArgs.cs
- HostDesigntimeLicenseContext.cs
- CollectionConverter.cs
- dataprotectionpermission.cs
- xamlnodes.cs
- Hex.cs
- XsltArgumentList.cs
- SecurityNegotiationException.cs
- manifestimages.cs
- TransformerInfoCollection.cs
- PartialCachingAttribute.cs
- TypedDataSetSchemaImporterExtension.cs
- panel.cs
- DesignerSerializerAttribute.cs
- CodeVariableDeclarationStatement.cs
- ArithmeticLiteral.cs
- RadialGradientBrush.cs
- COM2IDispatchConverter.cs
- SliderAutomationPeer.cs
- TCEAdapterGenerator.cs
- ValueSerializerAttribute.cs
- Timeline.cs
- XmlTextAttribute.cs
- AnimationClockResource.cs
- RawStylusActions.cs
- BindingExpressionBase.cs
- PageCache.cs
- DataBindingCollection.cs
- Point.cs
- CardSpaceException.cs
- EarlyBoundInfo.cs
- XmlQueryStaticData.cs
- control.ime.cs
- DataMisalignedException.cs
- ObjectHelper.cs
- ImplicitInputBrush.cs
- ViewLoader.cs
- UiaCoreTypesApi.cs
- ApplicationSettingsBase.cs