Code:
/ FX-1434 / FX-1434 / 1.0 / untmp / whidbey / REDBITS / 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; } } }
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- PingReply.cs
- StrongNameUtility.cs
- FilePresentation.cs
- FontResourceCache.cs
- CustomValidator.cs
- TypedElement.cs
- WebPermission.cs
- shaperfactory.cs
- _DomainName.cs
- IteratorDescriptor.cs
- CrossContextChannel.cs
- ThreadAbortException.cs
- XmlNodeComparer.cs
- HostingPreferredMapPath.cs
- SmtpDigestAuthenticationModule.cs
- UpdateEventArgs.cs
- XMLUtil.cs
- ServiceDescriptionImporter.cs
- LineBreakRecord.cs
- IgnoreFileBuildProvider.cs
- InternalDispatchObject.cs
- ListBoxChrome.cs
- TimelineCollection.cs
- StringFormat.cs
- DispatcherFrame.cs
- EventInfo.cs
- TraceProvider.cs
- MaskInputRejectedEventArgs.cs
- Cursor.cs
- ISAPIRuntime.cs
- ScriptReferenceEventArgs.cs
- ScrollBarAutomationPeer.cs
- newinstructionaction.cs
- Int32RectValueSerializer.cs
- MimePart.cs
- ToolStripHighContrastRenderer.cs
- XmlQualifiedNameTest.cs
- GetChildSubtree.cs
- UIPropertyMetadata.cs
- ConnectionStringsSection.cs
- ObjectSecurity.cs
- PeerApplicationLaunchInfo.cs
- ViewLoader.cs
- VectorCollectionConverter.cs
- XPathParser.cs
- DataSourceSelectArguments.cs
- SelectionEditor.cs
- AttachedPropertyMethodSelector.cs
- ApplicationManager.cs
- PropertyConverter.cs
- LongTypeConverter.cs
- JavaScriptObjectDeserializer.cs
- DataServiceHost.cs
- mactripleDES.cs
- GeometryHitTestParameters.cs
- NameScope.cs
- HttpCookieCollection.cs
- ToolStripItemCollection.cs
- IdentityReference.cs
- SqlProvider.cs
- HebrewNumber.cs
- Calendar.cs
- JsonReader.cs
- ValueProviderWrapper.cs
- PasswordBox.cs
- SafeMemoryMappedViewHandle.cs
- XmlBoundElement.cs
- BrowserCapabilitiesFactory.cs
- webclient.cs
- Visual3D.cs
- XmlNodeComparer.cs
- TextModifier.cs
- LinqDataSourceDisposeEventArgs.cs
- Image.cs
- CachedCompositeFamily.cs
- KeyNameIdentifierClause.cs
- TextCompositionManager.cs
- EncryptedData.cs
- PropertyGridEditorPart.cs
- CombinedGeometry.cs
- ClientScriptManager.cs
- CodeAttributeDeclaration.cs
- ApplicationSecurityManager.cs
- ImageSourceValueSerializer.cs
- DecoderBestFitFallback.cs
- WebServiceErrorEvent.cs
- ToolStripPanelRow.cs
- IPipelineRuntime.cs
- StateDesigner.LayoutSelectionGlyph.cs
- CssTextWriter.cs
- DeclarativeCatalogPartDesigner.cs
- EntityDataSourceState.cs
- OLEDB_Util.cs
- XmlSchemaSet.cs
- FaultHandlingFilter.cs
- ExceptionTranslationTable.cs
- ConnectionsZoneAutoFormat.cs
- XmlAttributeAttribute.cs
- SearchForVirtualItemEventArgs.cs
- DesignerDataTableBase.cs