Code:
/ Dotnetfx_Vista_SP2 / Dotnetfx_Vista_SP2 / 8.0.50727.4016 / DEVDIV / depot / DevDiv / releases / whidbey / NetFxQFE / 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
- ValidatingReaderNodeData.cs
- BaseComponentEditor.cs
- RichTextBoxConstants.cs
- Simplifier.cs
- ToggleButtonAutomationPeer.cs
- ExpressionBuilder.cs
- AncillaryOps.cs
- MessageHeaders.cs
- ContextMenu.cs
- RegexRunner.cs
- DataTableReaderListener.cs
- PropertyDescriptorGridEntry.cs
- PriorityBindingExpression.cs
- DataContractSerializer.cs
- KnownAssemblyEntry.cs
- RegexGroup.cs
- ClientEventManager.cs
- MonitoringDescriptionAttribute.cs
- Cloud.cs
- FilterElement.cs
- FixedFindEngine.cs
- JoinCqlBlock.cs
- ResizeGrip.cs
- WindowsListViewItemCheckBox.cs
- CompilerResults.cs
- OperatingSystem.cs
- PictureBox.cs
- TextEditor.cs
- UInt16Converter.cs
- ListParagraph.cs
- IncrementalHitTester.cs
- NetStream.cs
- ObjectStateManagerMetadata.cs
- NameValueSectionHandler.cs
- MsmqMessage.cs
- MarkupProperty.cs
- _FtpControlStream.cs
- SqlDataSourceConnectionPanel.cs
- Automation.cs
- OrthographicCamera.cs
- StylusPointCollection.cs
- FilePrompt.cs
- AutomationIdentifier.cs
- Win32Interop.cs
- RegexReplacement.cs
- DBSchemaTable.cs
- XamlPathDataSerializer.cs
- StateDesigner.Layouts.cs
- ContextDataSourceContextData.cs
- Resources.Designer.cs
- RuntimeTransactionHandle.cs
- CriticalHandle.cs
- DefaultAsyncDataDispatcher.cs
- IndependentAnimationStorage.cs
- SessionIDManager.cs
- SystemResourceKey.cs
- InitiatorServiceModelSecurityTokenRequirement.cs
- SymmetricCryptoHandle.cs
- DockPattern.cs
- CollectionConverter.cs
- RawMouseInputReport.cs
- XPathDocumentNavigator.cs
- Directory.cs
- SuppressMergeCheckAttribute.cs
- SapiAttributeParser.cs
- httpstaticobjectscollection.cs
- TypeCollectionPropertyEditor.cs
- Hyperlink.cs
- BasicHttpSecurityElement.cs
- WebDescriptionAttribute.cs
- VideoDrawing.cs
- AuthenticationService.cs
- ServiceDescriptionData.cs
- BaseCollection.cs
- DesignBindingValueUIHandler.cs
- FileSystemEventArgs.cs
- DynamicControl.cs
- ColumnMapProcessor.cs
- UpdateTranslator.cs
- WinEventWrap.cs
- ElementHostPropertyMap.cs
- XmlnsDictionary.cs
- Int32AnimationUsingKeyFrames.cs
- PageAsyncTaskManager.cs
- EditorPart.cs
- DefaultValueMapping.cs
- ExpressionPrefixAttribute.cs
- MenuItemBinding.cs
- RangeValuePatternIdentifiers.cs
- KeyPullup.cs
- Variable.cs
- AsyncOperationManager.cs
- WindowAutomationPeer.cs
- ListViewGroup.cs
- PointConverter.cs
- ActivationArguments.cs
- ValidationSummary.cs
- DataListCommandEventArgs.cs
- DataSetMappper.cs
- XmlProcessingInstruction.cs