Code:
/ 4.0 / 4.0 / untmp / 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.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- SubMenuStyleCollection.cs
- TraceHandler.cs
- LinqDataSourceStatusEventArgs.cs
- HtmlDocument.cs
- Setter.cs
- SequenceFullException.cs
- EncoderFallback.cs
- TableLayoutSettings.cs
- ByteKeyFrameCollection.cs
- TransformCollection.cs
- RouteTable.cs
- InkCanvas.cs
- BoundColumn.cs
- TextTrailingCharacterEllipsis.cs
- followingquery.cs
- DebugView.cs
- LabelAutomationPeer.cs
- PolicyReader.cs
- LayoutDump.cs
- AccessibilityApplicationManager.cs
- NativeMethods.cs
- StructuralComparisons.cs
- SqlCacheDependency.cs
- Image.cs
- StrongNameKeyPair.cs
- ListSortDescriptionCollection.cs
- NumberFunctions.cs
- TraversalRequest.cs
- WmlTextBoxAdapter.cs
- PresentationSource.cs
- BoundField.cs
- HttpClientCertificate.cs
- handlecollector.cs
- RoleProviderPrincipal.cs
- MdiWindowListStrip.cs
- SynchronousChannel.cs
- regiisutil.cs
- HandlerBase.cs
- ForceCopyBuildProvider.cs
- ModelItemCollection.cs
- SafeFileMappingHandle.cs
- SafePointer.cs
- TreeChangeInfo.cs
- HtmlTableCell.cs
- ConfigXmlComment.cs
- Trace.cs
- ContainerFilterService.cs
- URL.cs
- OleDbConnection.cs
- ConfigurationManagerInternalFactory.cs
- TemplateBaseAction.cs
- EntityContainerEntitySetDefiningQuery.cs
- TCPClient.cs
- RichTextBoxConstants.cs
- UMPAttributes.cs
- ServiceOperation.cs
- WrapPanel.cs
- CollectionChangeEventArgs.cs
- ToolStripContainer.cs
- MenuAutomationPeer.cs
- PathSegmentCollection.cs
- DataGridViewRowPrePaintEventArgs.cs
- XmlSchemaAll.cs
- BindableTemplateBuilder.cs
- CalloutQueueItem.cs
- ConvertTextFrag.cs
- WindowsFormsLinkLabel.cs
- IPAddressCollection.cs
- RemoteWebConfigurationHostStream.cs
- SpecularMaterial.cs
- WebPartManagerInternals.cs
- OracleLob.cs
- Configuration.cs
- NativeMethods.cs
- DataGridViewRowHeaderCell.cs
- XMLSyntaxException.cs
- TriggerCollection.cs
- CompiledQueryCacheEntry.cs
- InitializationEventAttribute.cs
- CapabilitiesUse.cs
- DbParameterCollectionHelper.cs
- ProcessHostServerConfig.cs
- SettingsBindableAttribute.cs
- ClientRolePrincipal.cs
- RemoveStoryboard.cs
- WindowsTokenRoleProvider.cs
- PersistenceTypeAttribute.cs
- DetailsViewUpdateEventArgs.cs
- FirstMatchCodeGroup.cs
- RectangleConverter.cs
- _ConnectionGroup.cs
- TreeNodeCollection.cs
- ContentWrapperAttribute.cs
- FontSource.cs
- TabRenderer.cs
- XmlValidatingReader.cs
- KnownIds.cs
- SatelliteContractVersionAttribute.cs
- PieceDirectory.cs
- TagPrefixAttribute.cs