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
- RichTextBoxAutomationPeer.cs
- TransformValueSerializer.cs
- AdRotator.cs
- InvokeMethodDesigner.xaml.cs
- TimeSpanConverter.cs
- DefaultEventAttribute.cs
- TemplatePropertyEntry.cs
- SecurityState.cs
- TemplateBindingExpressionConverter.cs
- BuildProviderCollection.cs
- BidPrivateBase.cs
- ByteConverter.cs
- XmlCDATASection.cs
- ExceptionHelpers.cs
- PasswordPropertyTextAttribute.cs
- SkipQueryOptionExpression.cs
- OracleRowUpdatedEventArgs.cs
- Translator.cs
- QueryPageSettingsEventArgs.cs
- Utils.cs
- ResponseStream.cs
- RoleManagerModule.cs
- RuntimeArgument.cs
- WebPartMenu.cs
- URLString.cs
- RestClientProxyHandler.cs
- ObjectListCommandsPage.cs
- BaseHashHelper.cs
- WinInetCache.cs
- TextParagraph.cs
- TypeRefElement.cs
- RelationshipConstraintValidator.cs
- ArglessEventHandlerProxy.cs
- SoapElementAttribute.cs
- CodeNamespace.cs
- ByteConverter.cs
- EditorZoneAutoFormat.cs
- CommonRemoteMemoryBlock.cs
- AcceleratedTokenAuthenticator.cs
- PrePostDescendentsWalker.cs
- ToolStripDropTargetManager.cs
- XmlSchemaSimpleTypeList.cs
- WebPartDescriptionCollection.cs
- SqlBulkCopy.cs
- RealizationContext.cs
- SelectedDatesCollection.cs
- SuppressMergeCheckAttribute.cs
- ProgressChangedEventArgs.cs
- PageAsyncTaskManager.cs
- ECDiffieHellmanPublicKey.cs
- ScaleTransform.cs
- _NegoState.cs
- DetailsViewPageEventArgs.cs
- CatalogPartChrome.cs
- UIAgentRequest.cs
- FlagsAttribute.cs
- ListViewUpdatedEventArgs.cs
- SerialPort.cs
- Certificate.cs
- ExplicitDiscriminatorMap.cs
- GZipStream.cs
- MultiByteCodec.cs
- SmiEventStream.cs
- NetCodeGroup.cs
- TemplatePagerField.cs
- RegexCapture.cs
- DesignerSerializerAttribute.cs
- ExpressionEditorAttribute.cs
- Convert.cs
- xml.cs
- TypedAsyncResult.cs
- TypedTableBase.cs
- ValidationEventArgs.cs
- BaseCodePageEncoding.cs
- UnknownWrapper.cs
- OleDbCommandBuilder.cs
- HttpWebRequest.cs
- XmlHierarchyData.cs
- PolicyException.cs
- SafeNativeMethods.cs
- JsonEncodingStreamWrapper.cs
- ThreadStaticAttribute.cs
- InputElement.cs
- SecureConversationServiceCredential.cs
- TraceSection.cs
- ColumnResult.cs
- XsdCachingReader.cs
- RadialGradientBrush.cs
- HScrollProperties.cs
- ListViewInsertedEventArgs.cs
- WebPartConnectionsEventArgs.cs
- ProcessModuleCollection.cs
- DecoderFallbackWithFailureFlag.cs
- BaseTemplateBuildProvider.cs
- ScriptingJsonSerializationSection.cs
- ExtendedPropertiesHandler.cs
- GeneralTransform3D.cs
- SerializationFieldInfo.cs
- WaitHandle.cs
- GridPattern.cs