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
- CustomAttributeSerializer.cs
- QueryRewriter.cs
- NominalTypeEliminator.cs
- AvtEvent.cs
- SafeEventLogWriteHandle.cs
- MonthCalendarDesigner.cs
- SecurityIdentifierConverter.cs
- HelpOperationInvoker.cs
- DeflateEmulationStream.cs
- PnrpPermission.cs
- ListSortDescriptionCollection.cs
- UnsafeCollabNativeMethods.cs
- SemaphoreFullException.cs
- AuthenticationManager.cs
- ConnectionsZoneAutoFormat.cs
- GeneratedContractType.cs
- RestHandler.cs
- HMACRIPEMD160.cs
- ToolStripLabel.cs
- XmlSchemaProviderAttribute.cs
- DelegatingTypeDescriptionProvider.cs
- NameTable.cs
- ImageSourceValueSerializer.cs
- JumpTask.cs
- PathTooLongException.cs
- DesignerAdRotatorAdapter.cs
- CustomAssemblyResolver.cs
- HtmlPanelAdapter.cs
- AsyncDataRequest.cs
- XsdDataContractImporter.cs
- IsolatedStorageFileStream.cs
- HtmlFormWrapper.cs
- TripleDESCryptoServiceProvider.cs
- ProfilePropertyMetadata.cs
- ReflectEventDescriptor.cs
- UseLicense.cs
- SqlDataSource.cs
- XmlDataFileEditor.cs
- ToolStripOverflow.cs
- StreamResourceInfo.cs
- XsltSettings.cs
- PageFunction.cs
- TextTrailingCharacterEllipsis.cs
- ObjectQuery_EntitySqlExtensions.cs
- StatusBarItemAutomationPeer.cs
- CategoryAttribute.cs
- FunctionMappingTranslator.cs
- EventDescriptor.cs
- TracingConnectionInitiator.cs
- RulePatternOps.cs
- ConstantSlot.cs
- ProviderSettings.cs
- Aes.cs
- ConvertersCollection.cs
- _NtlmClient.cs
- TimeZone.cs
- HttpCachePolicy.cs
- XmlPreloadedResolver.cs
- QueryStringParameter.cs
- SmtpException.cs
- UniqueIdentifierService.cs
- DataGridViewTextBoxCell.cs
- CatalogPartCollection.cs
- SByte.cs
- Visual3DCollection.cs
- GatewayDefinition.cs
- IODescriptionAttribute.cs
- XmlName.cs
- SafeNativeMethods.cs
- StandardToolWindows.cs
- ChildrenQuery.cs
- XmlNullResolver.cs
- EntityAdapter.cs
- DataGridViewImageCell.cs
- DragStartedEventArgs.cs
- Dispatcher.cs
- NullableConverter.cs
- _BasicClient.cs
- milrender.cs
- Button.cs
- UpDownEvent.cs
- Pool.cs
- shaperfactoryquerycacheentry.cs
- DataRow.cs
- TextEmbeddedObject.cs
- TextRange.cs
- VectorValueSerializer.cs
- TypeContext.cs
- SamlAuthenticationStatement.cs
- SuppressIldasmAttribute.cs
- PipeException.cs
- MessageHeaderAttribute.cs
- AsyncResult.cs
- StrokeDescriptor.cs
- FileLevelControlBuilderAttribute.cs
- DesignTableCollection.cs
- SqlInfoMessageEvent.cs
- BridgeDataRecord.cs
- DataGridViewCellConverter.cs
- ChtmlCommandAdapter.cs