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
- TextTreeExtractElementUndoUnit.cs
- HtmlUtf8RawTextWriter.cs
- HijriCalendar.cs
- FieldNameLookup.cs
- DecoderExceptionFallback.cs
- InputScope.cs
- HtmlProps.cs
- Composition.cs
- FixedSOMPageConstructor.cs
- TraceUtility.cs
- AbstractDataSvcMapFileLoader.cs
- GridViewSelectEventArgs.cs
- ItemDragEvent.cs
- RMEnrollmentPage1.cs
- StrokeNodeOperations2.cs
- CheckBoxPopupAdapter.cs
- DesignSurface.cs
- CachedTypeface.cs
- ZipIOEndOfCentralDirectoryBlock.cs
- ValidationError.cs
- HierarchicalDataSourceControl.cs
- XmlSerializerNamespaces.cs
- BookmarkScopeManager.cs
- SyncOperationState.cs
- Int32Storage.cs
- ValidateNames.cs
- DoubleConverter.cs
- TileBrush.cs
- ApplicationTrust.cs
- OpCodes.cs
- HttpListenerPrefixCollection.cs
- SerializationSectionGroup.cs
- SmiXetterAccessMap.cs
- PageThemeBuildProvider.cs
- ResourceReferenceExpression.cs
- TransactionManager.cs
- PerformanceCounter.cs
- RemotingAttributes.cs
- DrawingServices.cs
- CorrelationResolver.cs
- Util.cs
- ToolStripComboBox.cs
- UserPreferenceChangingEventArgs.cs
- TableProviderWrapper.cs
- oledbmetadatacollectionnames.cs
- CompositionTarget.cs
- XhtmlBasicImageAdapter.cs
- ValidationRuleCollection.cs
- GeneratedContractType.cs
- DataGridItemCollection.cs
- ACE.cs
- WebPartsSection.cs
- autovalidator.cs
- HtmlTableCellCollection.cs
- DocumentReference.cs
- UriWriter.cs
- MappedMetaModel.cs
- SafeViewOfFileHandle.cs
- ParameterToken.cs
- EditorZone.cs
- TypeHelpers.cs
- BufferedReadStream.cs
- WebPermission.cs
- HttpDebugHandler.cs
- LinkArea.cs
- QuerySettings.cs
- BaseParser.cs
- WmlValidationSummaryAdapter.cs
- AttributeCollection.cs
- FontSizeConverter.cs
- ContentOperations.cs
- ByteStreamGeometryContext.cs
- DocumentApplication.cs
- RegexTree.cs
- Opcode.cs
- SiteMapSection.cs
- BinHexDecoder.cs
- TableItemPattern.cs
- shaperfactoryquerycachekey.cs
- TextEditorTyping.cs
- SqlDataSourceCache.cs
- BoundsDrawingContextWalker.cs
- ModuleElement.cs
- DesignerRegionMouseEventArgs.cs
- FixedSOMTable.cs
- WeakReferenceEnumerator.cs
- DatePickerDateValidationErrorEventArgs.cs
- Trigger.cs
- LongValidator.cs
- TemplateModeChangedEventArgs.cs
- TokenizerHelper.cs
- SqlConnection.cs
- ListContractAdapter.cs
- XmlCodeExporter.cs
- DiagnosticsConfiguration.cs
- XmlArrayItemAttributes.cs
- PersonalizableTypeEntry.cs
- MappingModelBuildProvider.cs
- RelationshipEnd.cs
- SigningProgress.cs