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
- IChannel.cs
- _RegBlobWebProxyDataBuilder.cs
- HMACSHA384.cs
- ProtocolsConfigurationHandler.cs
- IteratorDescriptor.cs
- CheckBox.cs
- SpnEndpointIdentity.cs
- TraceSource.cs
- TextFormatterImp.cs
- AttributeProviderAttribute.cs
- PageParser.cs
- SQLBytes.cs
- GridViewDesigner.cs
- TableRowGroup.cs
- TextTreeTextBlock.cs
- DetailsViewPagerRow.cs
- HttpListenerException.cs
- MergeEnumerator.cs
- ErrorRuntimeConfig.cs
- BlockCollection.cs
- ArrangedElementCollection.cs
- FontUnitConverter.cs
- EntityDataReader.cs
- QilExpression.cs
- WorkflowRuntimeServiceElementCollection.cs
- LocalizeDesigner.cs
- FilteredXmlReader.cs
- OpenFileDialog.cs
- DefaultExpressionVisitor.cs
- WMICapabilities.cs
- FileCodeGroup.cs
- AnnotationDocumentPaginator.cs
- SerializationFieldInfo.cs
- BinaryQueryOperator.cs
- SequenceNumber.cs
- HtmlInputText.cs
- DataListItemCollection.cs
- ResourceLoader.cs
- _IPv4Address.cs
- LocalizableAttribute.cs
- AnnotationService.cs
- PartialTrustVisibleAssemblyCollection.cs
- TextRangeEditTables.cs
- SafeFileMappingHandle.cs
- LZCodec.cs
- ParseElementCollection.cs
- FontResourceCache.cs
- MD5.cs
- RowVisual.cs
- PropertyEntry.cs
- ToolStripPanelRenderEventArgs.cs
- IpcClientManager.cs
- ReferencedType.cs
- CompositeKey.cs
- XmlNamespaceDeclarationsAttribute.cs
- Utils.cs
- UrlPath.cs
- SafeProcessHandle.cs
- EdmValidator.cs
- NameValueSectionHandler.cs
- MemberAccessException.cs
- DataGridViewHitTestInfo.cs
- ModulesEntry.cs
- WorkflowElementDialogWindow.xaml.cs
- ScopelessEnumAttribute.cs
- BitmapEffectGroup.cs
- HandleScope.cs
- CustomValidator.cs
- DataBindingHandlerAttribute.cs
- StateDesigner.Layouts.cs
- RewritingValidator.cs
- Rect3D.cs
- InputMethod.cs
- FlowDocumentReader.cs
- SystemResourceKey.cs
- RegionIterator.cs
- DesignerSerializationManager.cs
- PreviewPrintController.cs
- TextSpanModifier.cs
- ContextQuery.cs
- LinqDataSourceEditData.cs
- XAMLParseException.cs
- DataBindingCollectionConverter.cs
- ExpressionCopier.cs
- KeyboardDevice.cs
- MethodExpr.cs
- RelAssertionDirectKeyIdentifierClause.cs
- Control.cs
- SmiEventSink_Default.cs
- DoubleAnimationUsingPath.cs
- QilScopedVisitor.cs
- wmiutil.cs
- VectorAnimationBase.cs
- SimpleBitVector32.cs
- DetailsViewInsertedEventArgs.cs
- InternalCache.cs
- OracleBinary.cs
- EntityDataSourceEntitySetNameItem.cs
- RuleInfoComparer.cs
- SortedList.cs