Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / Net / System / Net / Mail / BufferBuilder.cs / 1305376 / 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)
{
if (!String.IsNullOrEmpty(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, c));
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;
}
}
}
// 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
- RTLAwareMessageBox.cs
- ReaderOutput.cs
- QueryRelOp.cs
- WebPartEditVerb.cs
- DeobfuscatingStream.cs
- WebPartCatalogCloseVerb.cs
- Win32.cs
- RoutingEndpointTrait.cs
- IgnorePropertiesAttribute.cs
- DescendantBaseQuery.cs
- SimpleTypeResolver.cs
- VariantWrapper.cs
- TransformerInfo.cs
- RuntimeArgumentHandle.cs
- StrongName.cs
- Script.cs
- PathTooLongException.cs
- CancelEventArgs.cs
- FormatConvertedBitmap.cs
- Helpers.cs
- mediaeventargs.cs
- BmpBitmapDecoder.cs
- RadioButton.cs
- XmlObjectSerializerContext.cs
- UserValidatedEventArgs.cs
- HtmlControl.cs
- MemberMaps.cs
- ConfigurationHandlersInstallComponent.cs
- XmlToDatasetMap.cs
- SessionPageStateSection.cs
- EntityDataSourceConfigureObjectContext.cs
- ComponentEditorForm.cs
- ProcessHostFactoryHelper.cs
- TreeViewTemplateSelector.cs
- XmlIlTypeHelper.cs
- HyperLinkColumn.cs
- PopOutPanel.cs
- ElementProxy.cs
- PropertyItem.cs
- PropertyGridEditorPart.cs
- BuildTopDownAttribute.cs
- RIPEMD160Managed.cs
- NetPeerTcpBinding.cs
- OutOfMemoryException.cs
- ApplyImportsAction.cs
- FileAuthorizationModule.cs
- SelectionItemProviderWrapper.cs
- CheckPair.cs
- RC2CryptoServiceProvider.cs
- MenuItem.cs
- DirectionalLight.cs
- LicenseException.cs
- Color.cs
- SR.cs
- DBSqlParserColumnCollection.cs
- SqlDataSource.cs
- _PooledStream.cs
- XmlUrlResolver.cs
- RootProfilePropertySettingsCollection.cs
- CssTextWriter.cs
- InputReferenceExpression.cs
- Quaternion.cs
- ToolStripPanelRow.cs
- RegexCompiler.cs
- ViewGenerator.cs
- GC.cs
- SeekStoryboard.cs
- WorkItem.cs
- BulletChrome.cs
- ObjectManager.cs
- ParallelTimeline.cs
- DispatcherEventArgs.cs
- Paragraph.cs
- PersonalizableTypeEntry.cs
- ApplyImportsAction.cs
- templategroup.cs
- DataBinder.cs
- EngineSiteSapi.cs
- ListBindingHelper.cs
- MsmqEncryptionAlgorithm.cs
- DataGridViewImageCell.cs
- HttpServerVarsCollection.cs
- SQLByte.cs
- SspiWrapper.cs
- Subset.cs
- MetabaseServerConfig.cs
- RegisteredDisposeScript.cs
- CfgSemanticTag.cs
- HtmlSelect.cs
- ControlBindingsCollection.cs
- SecurityHeader.cs
- ObjectReaderCompiler.cs
- RenderContext.cs
- DesignerAttribute.cs
- QueryRewriter.cs
- FamilyTypefaceCollection.cs
- SqlInternalConnectionSmi.cs
- MeshGeometry3D.cs
- InputLanguageEventArgs.cs
- QuadraticBezierSegment.cs