Code:
/ FX-1434 / FX-1434 / 1.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
- RoleManagerSection.cs
- SecurityTokenValidationException.cs
- ColorMap.cs
- ToolTipAutomationPeer.cs
- ResourceDictionary.cs
- StringFreezingAttribute.cs
- FormViewPagerRow.cs
- MulticastDelegate.cs
- ListBoxItemWrapperAutomationPeer.cs
- Monitor.cs
- AlphabetConverter.cs
- SqlFactory.cs
- SpotLight.cs
- IntranetCredentialPolicy.cs
- GridSplitterAutomationPeer.cs
- CookielessHelper.cs
- NativeMethods.cs
- Imaging.cs
- DataRelation.cs
- ServicePoint.cs
- FileRecordSequenceHelper.cs
- ProtectedUri.cs
- BaseDataList.cs
- Random.cs
- NavigationProperty.cs
- BreakSafeBase.cs
- ViewKeyConstraint.cs
- TransactionInformation.cs
- DataErrorValidationRule.cs
- Rfc4050KeyFormatter.cs
- HwndSourceParameters.cs
- CheckBoxList.cs
- Typeface.cs
- httpserverutility.cs
- InkCanvasFeedbackAdorner.cs
- CryptoStream.cs
- TextSyndicationContentKindHelper.cs
- XhtmlTextWriter.cs
- PositiveTimeSpanValidator.cs
- AttachedPropertyBrowsableForTypeAttribute.cs
- DataSetMappper.cs
- CollectionBuilder.cs
- PageThemeParser.cs
- PointConverter.cs
- EFDataModelProvider.cs
- ControlBuilder.cs
- CurrencyWrapper.cs
- DataBindingExpressionBuilder.cs
- SQLInt32Storage.cs
- DataGridHyperlinkColumn.cs
- ViewEventArgs.cs
- AtomEntry.cs
- dsa.cs
- DebugHandleTracker.cs
- Ray3DHitTestResult.cs
- Knowncolors.cs
- ColorConvertedBitmap.cs
- BaseProcessor.cs
- XmlHelper.cs
- BufferedWebEventProvider.cs
- GradientStop.cs
- PassportPrincipal.cs
- Themes.cs
- ListSortDescriptionCollection.cs
- ServiceHostingEnvironment.cs
- UniqueSet.cs
- ExpressionNormalizer.cs
- Classification.cs
- SecurityPermission.cs
- GPRECTF.cs
- AssemblyResourceLoader.cs
- HyperLink.cs
- HMACSHA1.cs
- DesignerActionItemCollection.cs
- MetaModel.cs
- XmlTypeAttribute.cs
- FileLevelControlBuilderAttribute.cs
- SecurityPermission.cs
- HttpProfileBase.cs
- Cursor.cs
- DoubleLinkListEnumerator.cs
- Geometry.cs
- filewebresponse.cs
- PageTheme.cs
- CallId.cs
- CodeMemberProperty.cs
- FrameSecurityDescriptor.cs
- PrintingPermissionAttribute.cs
- FillErrorEventArgs.cs
- DataControlField.cs
- ChildDocumentBlock.cs
- LayoutTable.cs
- DbParameterCollectionHelper.cs
- shaperfactoryquerycacheentry.cs
- GC.cs
- Attributes.cs
- MimeTypePropertyAttribute.cs
- NotCondition.cs
- RIPEMD160Managed.cs
- SpnEndpointIdentity.cs