Code:
/ DotNET / DotNET / 8.0 / untmp / whidbey / REDBITS / ndp / fx / src / Net / System / Net / Mail / BufferBuilder.cs / 1 / BufferBuilder.cs
//------------------------------------------------------------------------------ //// Copyright (c) Microsoft Corporation. All rights reserved. // //----------------------------------------------------------------------------- namespace System.Net { using System; using System.IO; using System.Globalization; internal class BufferBuilder { byte[] buffer; int offset; internal BufferBuilder() : this(256) { } internal BufferBuilder(int initialSize) { this.buffer = new byte[initialSize]; } void EnsureBuffer(int count) { if (count > this.buffer.Length - this.offset) { byte[] newBuffer = new byte[((buffer.Length * 2)>(buffer.Length + count))?(buffer.Length*2):(buffer.Length + count)]; Buffer.BlockCopy(this.buffer, 0, newBuffer, 0, this.offset); this.buffer = newBuffer; } } internal void Append(byte value) { EnsureBuffer(1); this.buffer[this.offset++] = value; } internal void Append(byte[] value) { Append(value, 0, value.Length); } internal void Append(byte[] value, int offset, int count) { EnsureBuffer(count); Buffer.BlockCopy(value, offset, this.buffer, this.offset, count); this.offset += count; } internal void Append(string value) { Append(value, 0, value.Length); } internal void Append(string value, int offset, int count) { EnsureBuffer(count); for (int i = 0; i < count; i++) { char c = value[offset+i]; if ((ushort)c > 0xFF) throw new FormatException(SR.GetString(SR.MailHeaderFieldInvalidCharacter)); this.buffer[this.offset + i] = (byte)c; } this.offset += count; } internal int Length { get { return this.offset; } } internal byte[] GetBuffer() { return this.buffer; } internal void Reset() { this.offset = 0; } } }
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- SelectionEditor.cs
- TreeViewDataItemAutomationPeer.cs
- HttpModulesSection.cs
- DbgUtil.cs
- EntityDesignerDataSourceView.cs
- HitTestWithPointDrawingContextWalker.cs
- PageParser.cs
- TextElementEnumerator.cs
- PropertyChangedEventManager.cs
- LambdaCompiler.Binary.cs
- XmlTextAttribute.cs
- GridViewDeletedEventArgs.cs
- ToolStripSettings.cs
- InvalidOleVariantTypeException.cs
- ServiceOperationInfoTypeConverter.cs
- TypeDescriptionProvider.cs
- ServicePoint.cs
- FillErrorEventArgs.cs
- RepeatBehavior.cs
- ProcessInfo.cs
- XamlNamespaceHelper.cs
- EndPoint.cs
- ServiceDescriptionSerializer.cs
- ToolStripStatusLabel.cs
- DirectionalLight.cs
- PrtCap_Public_Simple.cs
- TextTreeInsertUndoUnit.cs
- ToolStripContentPanel.cs
- DropDownButton.cs
- ListBoxAutomationPeer.cs
- BindingContext.cs
- __Error.cs
- DoWorkEventArgs.cs
- OracleTransaction.cs
- SimpleFileLog.cs
- BindingExpressionBase.cs
- ActivationArguments.cs
- SmiGettersStream.cs
- QuaternionRotation3D.cs
- StreamWriter.cs
- BreakRecordTable.cs
- DocComment.cs
- MessageHeaderAttribute.cs
- ToolStripHighContrastRenderer.cs
- StringFormat.cs
- ProxyElement.cs
- ETagAttribute.cs
- AsyncOperationManager.cs
- View.cs
- input.cs
- FileDialogCustomPlace.cs
- Splitter.cs
- SyntaxCheck.cs
- PolicyVersionConverter.cs
- JavaScriptSerializer.cs
- CustomErrorsSection.cs
- SafeProcessHandle.cs
- AvtEvent.cs
- OleDbException.cs
- NumericExpr.cs
- GetReadStreamResult.cs
- LayoutManager.cs
- SwitchElementsCollection.cs
- WebBrowserSiteBase.cs
- SortAction.cs
- DynamicMetaObject.cs
- PersonalizationAdministration.cs
- XmlNodeComparer.cs
- DataGridCommandEventArgs.cs
- Int32Animation.cs
- RTLAwareMessageBox.cs
- VirtualPathUtility.cs
- _ShellExpression.cs
- BaseDataListComponentEditor.cs
- ISAPIApplicationHost.cs
- Comparer.cs
- ManifestResourceInfo.cs
- HttpCacheVaryByContentEncodings.cs
- TransportSecurityProtocol.cs
- EastAsianLunisolarCalendar.cs
- BuildProvider.cs
- XmlArrayItemAttribute.cs
- SparseMemoryStream.cs
- RoutedCommand.cs
- DesigntimeLicenseContext.cs
- ConditionalAttribute.cs
- XmlIterators.cs
- UiaCoreProviderApi.cs
- SecurityResources.cs
- IBuiltInEvidence.cs
- XmlSchemaComplexType.cs
- InvariantComparer.cs
- BlockUIContainer.cs
- WebResourceAttribute.cs
- DeviceFilterEditorDialog.cs
- LocalServiceSecuritySettings.cs
- IBuiltInEvidence.cs
- DependencyObjectValidator.cs
- MessageQueuePermissionEntryCollection.cs
- Storyboard.cs