Code:
/ Net / Net / 3.5.50727.3053 / DEVDIV / depot / DevDiv / releases / whidbey / netfxsp / 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;
}
}
}
// File provided for Reference Use Only by Microsoft Corporation (c) 2007.
//------------------------------------------------------------------------------
//
// 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;
}
}
}
// 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
- SchemaTableOptionalColumn.cs
- StandardMenuStripVerb.cs
- MatchingStyle.cs
- StructuredTypeEmitter.cs
- Size.cs
- AnnotationComponentManager.cs
- TextTreeNode.cs
- EntityKeyElement.cs
- WindowsButton.cs
- XmlSerializer.cs
- SqlUserDefinedTypeAttribute.cs
- BitFlagsGenerator.cs
- View.cs
- Brush.cs
- AddToCollection.cs
- DataGridAddNewRow.cs
- RowParagraph.cs
- RuntimeEnvironment.cs
- OrthographicCamera.cs
- OleDbTransaction.cs
- PointLight.cs
- Int32CollectionValueSerializer.cs
- ConnectionManagementElementCollection.cs
- SqlDataSourceDesigner.cs
- ExcludePathInfo.cs
- RuntimeTrackingProfile.cs
- AccessControlEntry.cs
- PlacementWorkspace.cs
- WinFormsComponentEditor.cs
- PassportIdentity.cs
- Converter.cs
- RequestTimeoutManager.cs
- TypeConverterValueSerializer.cs
- DoubleLinkListEnumerator.cs
- EllipseGeometry.cs
- SiteMembershipCondition.cs
- GridViewEditEventArgs.cs
- OdbcErrorCollection.cs
- AttachmentCollection.cs
- PipelineDeploymentState.cs
- SchemaImporterExtensionElement.cs
- ServicePrincipalNameElement.cs
- StreamResourceInfo.cs
- IERequestCache.cs
- ArrayTypeMismatchException.cs
- QilValidationVisitor.cs
- TextTreeTextElementNode.cs
- FrameworkObject.cs
- PreProcessor.cs
- OracleConnection.cs
- IconBitmapDecoder.cs
- InputEventArgs.cs
- XsltException.cs
- GridViewUpdatedEventArgs.cs
- QueryOpcode.cs
- AmbientLight.cs
- TrustManagerPromptUI.cs
- NetworkAddressChange.cs
- FileDialog_Vista.cs
- XmlIlVisitor.cs
- DataGridRowClipboardEventArgs.cs
- UIElementIsland.cs
- Pair.cs
- SizeF.cs
- BinHexEncoder.cs
- ModifierKeysValueSerializer.cs
- HttpServerVarsCollection.cs
- PersonalizationProvider.cs
- CryptoConfig.cs
- ExpressionNode.cs
- ResourceDefaultValueAttribute.cs
- KnownAssembliesSet.cs
- MenuItemStyleCollection.cs
- DataGridColumnsPage.cs
- COM2FontConverter.cs
- Pair.cs
- AuthenticationConfig.cs
- DirectoryInfo.cs
- EnumerableRowCollection.cs
- DataSpaceManager.cs
- _AutoWebProxyScriptWrapper.cs
- _DisconnectOverlappedAsyncResult.cs
- CodeTypeMemberCollection.cs
- EndOfStreamException.cs
- dbenumerator.cs
- XmlEventCache.cs
- FixedTextBuilder.cs
- XmlSchemaExporter.cs
- VisualStyleInformation.cs
- ObjectDataSourceDisposingEventArgs.cs
- EntitySetRetriever.cs
- JsonByteArrayDataContract.cs
- DigitShape.cs
- ChtmlLinkAdapter.cs
- metadatamappinghashervisitor.cs
- WinFormsUtils.cs
- EmptyStringExpandableObjectConverter.cs
- BinHexDecoder.cs
- ErrorFormatter.cs
- MailSettingsSection.cs