Code:
/ Dotnetfx_Vista_SP2 / Dotnetfx_Vista_SP2 / 8.0.50727.4016 / DEVDIV / depot / DevDiv / releases / whidbey / NetFxQFE / 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. // //[....] //----------------------------------------------------------------------------- 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.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- DataGridViewAdvancedBorderStyle.cs
- WebPartVerbsEventArgs.cs
- CoreSwitches.cs
- ErrorTableItemStyle.cs
- Matrix.cs
- COM2PictureConverter.cs
- ManagementScope.cs
- ManagedFilter.cs
- CompilerGlobalScopeAttribute.cs
- SHA1Managed.cs
- BuilderInfo.cs
- ServiceHostingEnvironment.cs
- XslTransform.cs
- DeclarationUpdate.cs
- TypeUsage.cs
- X509Chain.cs
- ConvertBinder.cs
- PageCodeDomTreeGenerator.cs
- Tag.cs
- SettingsSavedEventArgs.cs
- RegisteredExpandoAttribute.cs
- DragEvent.cs
- Message.cs
- RegistryKey.cs
- TextRangeProviderWrapper.cs
- HashCryptoHandle.cs
- precedingsibling.cs
- ExpressionBinding.cs
- XmlDataSourceDesigner.cs
- SEHException.cs
- HideDisabledControlAdapter.cs
- LinkButton.cs
- templategroup.cs
- FixedPageProcessor.cs
- MailDefinition.cs
- CurrencyWrapper.cs
- returneventsaver.cs
- SoapHttpTransportImporter.cs
- BlobPersonalizationState.cs
- FlowDocument.cs
- XamlWriter.cs
- LineMetrics.cs
- ZipIOCentralDirectoryDigitalSignature.cs
- BigInt.cs
- SecurityTokenProvider.cs
- WindowsListViewGroupHelper.cs
- CodeDOMUtility.cs
- ServicePointManager.cs
- UIElement.cs
- SecureStringHasher.cs
- UnsafeNativeMethods.cs
- BaseTemplateParser.cs
- CorrelationManager.cs
- GACIdentityPermission.cs
- TreeNodeSelectionProcessor.cs
- SqlRecordBuffer.cs
- HttpProfileBase.cs
- ToolStripSettings.cs
- AncestorChangedEventArgs.cs
- Inflater.cs
- RegexMatchCollection.cs
- ApplicationDirectoryMembershipCondition.cs
- WMIInterop.cs
- CacheMemory.cs
- ComContractElement.cs
- RSAProtectedConfigurationProvider.cs
- EntityKeyElement.cs
- Typography.cs
- AssemblyAttributes.cs
- DecoderExceptionFallback.cs
- NamespaceInfo.cs
- xmlsaver.cs
- LookupBindingPropertiesAttribute.cs
- CollectionsUtil.cs
- HMACRIPEMD160.cs
- XmlKeywords.cs
- ApplicationInfo.cs
- DataSourceCache.cs
- DispatcherFrame.cs
- DataFieldConverter.cs
- ResourceContainer.cs
- WebServiceMethodData.cs
- EditorBrowsableAttribute.cs
- AutomationPeer.cs
- infer.cs
- ToolStripSeparator.cs
- ContentPosition.cs
- ByteRangeDownloader.cs
- SqlNodeAnnotation.cs
- BinHexDecoder.cs
- NestedContainer.cs
- SmiRequestExecutor.cs
- SplitterCancelEvent.cs
- Camera.cs
- ConstantExpression.cs
- TransformPattern.cs
- ExpressionBindingsDialog.cs
- X509UI.cs
- XamlTemplateSerializer.cs
- SqlServer2KCompatibilityCheck.cs