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
- WindowsPrincipal.cs
- ImageMapEventArgs.cs
- OleDbEnumerator.cs
- PeerMessageDispatcher.cs
- DataMember.cs
- DataMemberAttribute.cs
- Clipboard.cs
- OdbcConnectionHandle.cs
- PathFigureCollection.cs
- RectIndependentAnimationStorage.cs
- BaseContextMenu.cs
- DelegateOutArgument.cs
- ErrorWrapper.cs
- CfgRule.cs
- localization.cs
- FixedHighlight.cs
- WorkflowItemPresenter.cs
- DrawingImage.cs
- DiscoveryClientDocuments.cs
- SmtpSpecifiedPickupDirectoryElement.cs
- hresults.cs
- InlineObject.cs
- QueryCursorEventArgs.cs
- SqlAliasesReferenced.cs
- HandledEventArgs.cs
- BaseCollection.cs
- CookielessHelper.cs
- ResolveNameEventArgs.cs
- IisNotInstalledException.cs
- CodePageEncoding.cs
- ServicePointManager.cs
- ClientSponsor.cs
- SaveWorkflowCommand.cs
- Types.cs
- PointKeyFrameCollection.cs
- streamingZipPartStream.cs
- EventLogPermissionAttribute.cs
- AnnotationMap.cs
- BlurBitmapEffect.cs
- BuildProviderCollection.cs
- ObjectManager.cs
- AdCreatedEventArgs.cs
- Baml6Assembly.cs
- Bidi.cs
- webeventbuffer.cs
- ThemeableAttribute.cs
- TimeSpanValidatorAttribute.cs
- BinaryMethodMessage.cs
- _NestedMultipleAsyncResult.cs
- WebPartVerbCollection.cs
- WebPartsPersonalization.cs
- SafeArrayRankMismatchException.cs
- PromptBuilder.cs
- EncoderBestFitFallback.cs
- DbConnectionHelper.cs
- BoolExpression.cs
- Panel.cs
- ParentQuery.cs
- SHA256.cs
- XMLDiffLoader.cs
- TextSpan.cs
- Figure.cs
- TextEditorParagraphs.cs
- AccessorTable.cs
- CaseStatementSlot.cs
- PasswordBoxAutomationPeer.cs
- WebCategoryAttribute.cs
- XmlBoundElement.cs
- OutputCacheProfileCollection.cs
- DataControlLinkButton.cs
- brushes.cs
- FrugalList.cs
- InvalidateEvent.cs
- ViewPort3D.cs
- UnmanagedHandle.cs
- InlineObject.cs
- WindowsAuthenticationModule.cs
- TextDecoration.cs
- RowParagraph.cs
- LocalBuilder.cs
- CombinedTcpChannel.cs
- TypeElementCollection.cs
- AnonymousIdentificationSection.cs
- BlockCollection.cs
- selecteditemcollection.cs
- HttpCookieCollection.cs
- ProtocolsSection.cs
- BridgeDataRecord.cs
- ObjectDataSourceMethodEventArgs.cs
- PolyBezierSegment.cs
- propertyentry.cs
- EdmScalarPropertyAttribute.cs
- MarkedHighlightComponent.cs
- TargetControlTypeAttribute.cs
- DBProviderConfigurationHandler.cs
- SerializerProvider.cs
- JsonSerializer.cs
- OracleParameterCollection.cs
- DesignerLabelAdapter.cs
- XmlSchema.cs