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
- GreaterThanOrEqual.cs
- StylusPointPropertyId.cs
- ThicknessAnimationBase.cs
- Accessors.cs
- LongValidator.cs
- SocketPermission.cs
- ExpressionVisitor.cs
- ProcessHostFactoryHelper.cs
- ButtonChrome.cs
- ZipIOExtraFieldPaddingElement.cs
- SpoolingTaskBase.cs
- Models.cs
- WinInet.cs
- SchemaTableColumn.cs
- StatusBarItemAutomationPeer.cs
- TypedTableBase.cs
- ObjectView.cs
- SecurityTokenSerializer.cs
- FlowSwitch.cs
- EllipseGeometry.cs
- DataGridSortingEventArgs.cs
- DataErrorValidationRule.cs
- TemplatePartAttribute.cs
- COM2IPerPropertyBrowsingHandler.cs
- AssemblyInfo.cs
- WindowsStatusBar.cs
- TextLineResult.cs
- IdentifierCollection.cs
- SoapAttributeAttribute.cs
- BatchStream.cs
- MarkerProperties.cs
- SamlAssertionKeyIdentifierClause.cs
- RegexWorker.cs
- WebUtil.cs
- ToolboxItemCollection.cs
- ServerIdentity.cs
- ICspAsymmetricAlgorithm.cs
- Utils.cs
- StructuralCache.cs
- DesignerCategoryAttribute.cs
- FileSecurity.cs
- CommonRemoteMemoryBlock.cs
- ParagraphVisual.cs
- DesignParameter.cs
- NoClickablePointException.cs
- AssociationTypeEmitter.cs
- ValidateNames.cs
- ColorConvertedBitmapExtension.cs
- ClientScriptManagerWrapper.cs
- EntityModelSchemaGenerator.cs
- PerformanceCountersElement.cs
- Graphics.cs
- DoubleAnimation.cs
- ArgumentNullException.cs
- sqlnorm.cs
- TextEffectCollection.cs
- contentDescriptor.cs
- WriteTimeStream.cs
- ChildTable.cs
- UmAlQuraCalendar.cs
- CodeExporter.cs
- TypeGeneratedEventArgs.cs
- isolationinterop.cs
- ContextMenuStrip.cs
- DragDrop.cs
- UIInitializationException.cs
- ObfuscationAttribute.cs
- EntityWrapper.cs
- DelegateBodyWriter.cs
- ObjectStateManager.cs
- RSAPKCS1KeyExchangeDeformatter.cs
- XmlSchemaException.cs
- HtmlTable.cs
- BoolLiteral.cs
- Wildcard.cs
- DefinitionUpdate.cs
- HMAC.cs
- IISMapPath.cs
- AdornerDecorator.cs
- HandlerBase.cs
- SoapInteropTypes.cs
- FormViewPagerRow.cs
- TagPrefixCollection.cs
- ComponentCommands.cs
- DbProviderFactoriesConfigurationHandler.cs
- TeredoHelper.cs
- SourceLineInfo.cs
- DictionaryEntry.cs
- ThemeDirectoryCompiler.cs
- WmlValidatorAdapter.cs
- SHA512Managed.cs
- SrgsNameValueTag.cs
- PasswordRecovery.cs
- TreeViewEvent.cs
- Int16Animation.cs
- _BaseOverlappedAsyncResult.cs
- EntityTransaction.cs
- DataMisalignedException.cs
- HelpInfo.cs
- AbstractSvcMapFileLoader.cs