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
- StsCommunicationException.cs
- SelectionProcessor.cs
- PathGradientBrush.cs
- DataBinding.cs
- FixedTextContainer.cs
- BrowserCapabilitiesFactoryBase.cs
- XslCompiledTransform.cs
- DataServiceProviderWrapper.cs
- Menu.cs
- WebPartZoneBase.cs
- XmlBindingWorker.cs
- XmlSchemaGroupRef.cs
- PeerCollaboration.cs
- FormClosedEvent.cs
- OleDbDataReader.cs
- GenericAuthenticationEventArgs.cs
- AnimationClockResource.cs
- FtpWebRequest.cs
- BrowserCapabilitiesFactory.cs
- MessageQueuePermissionEntry.cs
- EtwTrace.cs
- Misc.cs
- XmlWellformedWriter.cs
- KerberosRequestorSecurityToken.cs
- ShapingEngine.cs
- APCustomTypeDescriptor.cs
- DetailsViewDeletedEventArgs.cs
- SessionParameter.cs
- GenericEnumerator.cs
- CollectionViewGroupRoot.cs
- AssemblyFilter.cs
- WSHttpTransportSecurityElement.cs
- precedingsibling.cs
- ObjectStateEntryBaseUpdatableDataRecord.cs
- RenderingEventArgs.cs
- HttpCapabilitiesEvaluator.cs
- RoutedPropertyChangedEventArgs.cs
- HttpAsyncResult.cs
- SqlBuffer.cs
- TimeZone.cs
- NavigationPropertyEmitter.cs
- CombinedGeometry.cs
- AlgoModule.cs
- HandlerMappingMemo.cs
- HttpApplicationFactory.cs
- _Semaphore.cs
- BitmapCache.cs
- ButtonBase.cs
- OneOfElement.cs
- XmlSerializationWriter.cs
- StringValueSerializer.cs
- DataGridViewCellStyleEditor.cs
- WSDualHttpSecurity.cs
- ListContractAdapter.cs
- SoapExtensionStream.cs
- LogReservationCollection.cs
- VisualBrush.cs
- GiveFeedbackEvent.cs
- GroupBox.cs
- ThreadTrace.cs
- AssociationType.cs
- WebConfigurationManager.cs
- Drawing.cs
- NavigationService.cs
- DataChangedEventManager.cs
- RevocationPoint.cs
- EditorZoneBase.cs
- SafeFindHandle.cs
- TraversalRequest.cs
- ExpressionNormalizer.cs
- ImageConverter.cs
- SrgsElementFactory.cs
- BamlWriter.cs
- DataGridDefaultColumnWidthTypeConverter.cs
- TableAdapterManagerNameHandler.cs
- NullableDecimalAverageAggregationOperator.cs
- OuterGlowBitmapEffect.cs
- ScriptResourceInfo.cs
- Pointer.cs
- HebrewNumber.cs
- DateTimeConverter2.cs
- Rect3DConverter.cs
- SafeFileMappingHandle.cs
- SettingsPropertyValueCollection.cs
- PointValueSerializer.cs
- BaseTransportHeaders.cs
- PassportPrincipal.cs
- TranslateTransform3D.cs
- hresults.cs
- JournalEntry.cs
- DataControlButton.cs
- DrawingBrush.cs
- ApplicationException.cs
- DecoderFallbackWithFailureFlag.cs
- CheckBoxFlatAdapter.cs
- MatrixValueSerializer.cs
- DocumentPageViewAutomationPeer.cs
- ProfilePropertyNameValidator.cs
- HandleRef.cs
- StatusBarPanelClickEvent.cs