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
- ResourceSet.cs
- TextBoxAutoCompleteSourceConverter.cs
- HttpClientChannel.cs
- AppLevelCompilationSectionCache.cs
- ISO2022Encoding.cs
- NegationPusher.cs
- VectorKeyFrameCollection.cs
- ListMarkerSourceInfo.cs
- SocketAddress.cs
- FontInfo.cs
- arabicshape.cs
- TraceData.cs
- XhtmlBasicListAdapter.cs
- SystemIPv4InterfaceProperties.cs
- DBSqlParserTable.cs
- ExtensionWindow.cs
- SHA512.cs
- TextFormatterImp.cs
- Rect3DValueSerializer.cs
- DataGrid.cs
- ExeContext.cs
- PointLightBase.cs
- DefaultTextStoreTextComposition.cs
- GlobalizationSection.cs
- XmlSchemaSimpleTypeList.cs
- TimelineClockCollection.cs
- XmlSchemas.cs
- SafeWaitHandle.cs
- HandlerBase.cs
- MetadataProperty.cs
- SafeThreadHandle.cs
- SystemFonts.cs
- ToolStripItemImageRenderEventArgs.cs
- XmlQueryStaticData.cs
- NetworkInterface.cs
- AxDesigner.cs
- MonitorWrapper.cs
- DisplayNameAttribute.cs
- processwaithandle.cs
- TextViewDesigner.cs
- Timer.cs
- CommandConverter.cs
- Missing.cs
- BitmapEffectGroup.cs
- XhtmlBasicFormAdapter.cs
- IdnMapping.cs
- FileVersion.cs
- Rotation3DAnimation.cs
- PublisherIdentityPermission.cs
- ListViewInsertEventArgs.cs
- QueryAccessibilityHelpEvent.cs
- PreservationFileReader.cs
- AuthenticatedStream.cs
- DateTimeFormat.cs
- SubqueryRules.cs
- peersecuritysettings.cs
- login.cs
- Activator.cs
- ModelUIElement3D.cs
- UnsafeNativeMethods.cs
- Config.cs
- FastEncoderStatics.cs
- SqlDependencyListener.cs
- LinearGradientBrush.cs
- XpsS0ValidatingLoader.cs
- InstanceDescriptor.cs
- IconHelper.cs
- DataGridViewColumn.cs
- JsonFormatWriterGenerator.cs
- TextRenderer.cs
- CopyEncoder.cs
- HtmlTableRow.cs
- AVElementHelper.cs
- ProfessionalColorTable.cs
- CorrelationTokenTypeConvertor.cs
- IsolatedStorageException.cs
- TextBox.cs
- IISMapPath.cs
- Point.cs
- EncodingStreamWrapper.cs
- PackageFilter.cs
- ComponentManagerBroker.cs
- ApplicationFileParser.cs
- BamlVersionHeader.cs
- AutoCompleteStringCollection.cs
- HtmlSelect.cs
- SlipBehavior.cs
- PagedDataSource.cs
- SafeIUnknown.cs
- EncoderParameter.cs
- HtmlInputHidden.cs
- ClockController.cs
- Section.cs
- METAHEADER.cs
- HostedHttpTransportManager.cs
- CompilationUnit.cs
- DesignerObjectListAdapter.cs
- MethodToken.cs
- XPathAxisIterator.cs
- StructuredTypeEmitter.cs