Code:
/ DotNET / DotNET / 8.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
- DbConnectionPoolGroupProviderInfo.cs
- ThemeConfigurationDialog.cs
- ControlBuilderAttribute.cs
- SoapInteropTypes.cs
- ListDataBindEventArgs.cs
- NetworkInformationPermission.cs
- NameValueCollection.cs
- EndOfStreamException.cs
- SelectionPatternIdentifiers.cs
- ConfigurationLocationCollection.cs
- Method.cs
- FormsAuthenticationConfiguration.cs
- SqlInternalConnection.cs
- SynchronizedDispatch.cs
- EventLogWatcher.cs
- OutputWindow.cs
- ZipIOExtraField.cs
- CodeLinePragma.cs
- RectValueSerializer.cs
- _ListenerResponseStream.cs
- MaterialCollection.cs
- Blend.cs
- WindowsStartMenu.cs
- Paragraph.cs
- BamlResourceDeserializer.cs
- MSAAEventDispatcher.cs
- GlobalizationAssembly.cs
- SectionInput.cs
- FrameworkElementFactory.cs
- BitmapSizeOptions.cs
- ContentPlaceHolder.cs
- DrawingAttributes.cs
- ParallelLoopState.cs
- DiscardableAttribute.cs
- HitTestWithPointDrawingContextWalker.cs
- UnsafeNativeMethods.cs
- AppSettingsReader.cs
- HtmlElement.cs
- Axis.cs
- RequestContext.cs
- LookupNode.cs
- SystemSounds.cs
- _LocalDataStore.cs
- SHA512Managed.cs
- Events.cs
- MembershipSection.cs
- SqlTypeSystemProvider.cs
- ResourceCodeDomSerializer.cs
- DateTimeOffsetConverter.cs
- ProtectedConfigurationProviderCollection.cs
- ConfigurationCollectionAttribute.cs
- XamlWriter.cs
- CodeTypeDelegate.cs
- _NetworkingPerfCounters.cs
- TypeSemantics.cs
- CompositeControl.cs
- AsyncResult.cs
- TypeDescriptionProvider.cs
- SafeNativeMethods.cs
- Vector.cs
- QuadraticBezierSegment.cs
- FormViewUpdatedEventArgs.cs
- Misc.cs
- SiteOfOriginContainer.cs
- WebContext.cs
- ImagingCache.cs
- DocumentPageView.cs
- WebPartEventArgs.cs
- SqlComparer.cs
- BamlLocalizerErrorNotifyEventArgs.cs
- Rotation3DAnimationUsingKeyFrames.cs
- X509CertificateValidationMode.cs
- Package.cs
- ISessionStateStore.cs
- ToolStripMenuItem.cs
- RenderContext.cs
- Hex.cs
- XmlSchemaAttributeGroupRef.cs
- DbConvert.cs
- ObservableCollection.cs
- ResolvedKeyFrameEntry.cs
- DeploymentSectionCache.cs
- EntityContainer.cs
- filewebresponse.cs
- GeneralTransform2DTo3DTo2D.cs
- TypedDatasetGenerator.cs
- UnsafeNativeMethods.cs
- SystemDiagnosticsSection.cs
- Semaphore.cs
- DoubleLinkList.cs
- EventMappingSettingsCollection.cs
- JsonDataContract.cs
- XsltContext.cs
- odbcmetadatacolumnnames.cs
- FrameworkContentElementAutomationPeer.cs
- DiffuseMaterial.cs
- CustomErrorsSection.cs
- MenuItemBinding.cs
- EndpointAddressMessageFilter.cs
- ProxyFragment.cs