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
- PrimaryKeyTypeConverter.cs
- HttpRawResponse.cs
- TagElement.cs
- MobileCapabilities.cs
- nulltextcontainer.cs
- Int64Animation.cs
- RotateTransform.cs
- OleDbParameter.cs
- MediaPlayerState.cs
- ConfigurationSchemaErrors.cs
- ToolStripGripRenderEventArgs.cs
- Selection.cs
- HashMembershipCondition.cs
- GPPOINT.cs
- ProcessHostMapPath.cs
- NameNode.cs
- Thickness.cs
- DesignTimeDataBinding.cs
- RecordsAffectedEventArgs.cs
- ParameterModifier.cs
- XmlCountingReader.cs
- ChannelManager.cs
- Size3DConverter.cs
- FieldNameLookup.cs
- InvokeBase.cs
- BinaryReader.cs
- FixedTextSelectionProcessor.cs
- ElementFactory.cs
- XmlComment.cs
- WeakRefEnumerator.cs
- ObjectNavigationPropertyMapping.cs
- WebPermission.cs
- SqlClientFactory.cs
- DbConnectionPoolGroupProviderInfo.cs
- NavigationProgressEventArgs.cs
- TypeUsage.cs
- SocketAddress.cs
- UserControlBuildProvider.cs
- SimpleWorkerRequest.cs
- User.cs
- CountdownEvent.cs
- LiteralTextParser.cs
- ErrorStyle.cs
- FileLevelControlBuilderAttribute.cs
- oledbmetadatacollectionnames.cs
- ServiceHost.cs
- COAUTHIDENTITY.cs
- GridViewUpdateEventArgs.cs
- ContextMenuAutomationPeer.cs
- FrameworkTemplate.cs
- DocumentSequence.cs
- DPCustomTypeDescriptor.cs
- assemblycache.cs
- Base64WriteStateInfo.cs
- SafeFileHandle.cs
- COM2IDispatchConverter.cs
- OutOfProcStateClientManager.cs
- XmlSchemaNotation.cs
- ReferenceAssemblyAttribute.cs
- DodSequenceMerge.cs
- IdnElement.cs
- TraceSwitch.cs
- DataObject.cs
- path.cs
- ContextMenu.cs
- UnsafePeerToPeerMethods.cs
- SingleObjectCollection.cs
- TemplatePropertyEntry.cs
- PrimaryKeyTypeConverter.cs
- DbConnectionPoolOptions.cs
- TableParagraph.cs
- ThreadAttributes.cs
- FontNamesConverter.cs
- RowToParametersTransformer.cs
- PropertyGridEditorPart.cs
- FormatException.cs
- ThousandthOfEmRealPoints.cs
- ProfileManager.cs
- LineVisual.cs
- BrushMappingModeValidation.cs
- HttpCapabilitiesBase.cs
- XPathItem.cs
- CodeDomSerializerBase.cs
- EdmToObjectNamespaceMap.cs
- LabelEditEvent.cs
- WindowsListViewScroll.cs
- RuntimeArgument.cs
- HttpFormatExtensions.cs
- OperationInvokerTrace.cs
- HwndHost.cs
- ListBindingHelper.cs
- CustomErrorsSection.cs
- TemplateBamlTreeBuilder.cs
- ToolStripDropDownClosingEventArgs.cs
- SecurityTokenTypes.cs
- SelectorAutomationPeer.cs
- SequentialOutput.cs
- DataTableTypeConverter.cs
- LicenseException.cs
- ListViewCancelEventArgs.cs