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
- _LocalDataStore.cs
- SqlDuplicator.cs
- CachedPathData.cs
- HashMembershipCondition.cs
- ListViewItemMouseHoverEvent.cs
- XmlSerializerObjectSerializer.cs
- InvalidEnumArgumentException.cs
- AnnotationResource.cs
- CodeMemberEvent.cs
- LinqDataSourceHelper.cs
- Stackframe.cs
- ScriptResourceDefinition.cs
- MappingMetadataHelper.cs
- X509ChainElement.cs
- PersonalizationProviderCollection.cs
- FlowLayoutPanel.cs
- DispatchWrapper.cs
- ObjectDataSourceDisposingEventArgs.cs
- HostVisual.cs
- OleDbRowUpdatingEvent.cs
- StreamInfo.cs
- PerformanceCounterPermission.cs
- XPathAxisIterator.cs
- EventToken.cs
- AdCreatedEventArgs.cs
- ClientSettingsSection.cs
- TraceHandlerErrorFormatter.cs
- ListViewDataItem.cs
- BamlVersionHeader.cs
- StrokeSerializer.cs
- Constants.cs
- TdsRecordBufferSetter.cs
- FormViewPageEventArgs.cs
- MimeTypePropertyAttribute.cs
- MinMaxParagraphWidth.cs
- InkCanvasSelectionAdorner.cs
- RtfControls.cs
- Math.cs
- GuidTagList.cs
- SafeCryptHandles.cs
- MulticastOption.cs
- TagPrefixInfo.cs
- SqlProvider.cs
- PropertyGridView.cs
- FormViewCommandEventArgs.cs
- UserControl.cs
- Rotation3D.cs
- RectIndependentAnimationStorage.cs
- TrustLevel.cs
- PageParser.cs
- ParameterBuilder.cs
- CodeDOMProvider.cs
- DiscreteKeyFrames.cs
- CodeDomSerializer.cs
- DataQuery.cs
- PeerNameRecord.cs
- SourceInterpreter.cs
- AppDomainGrammarProxy.cs
- TextSpan.cs
- AudioSignalProblemOccurredEventArgs.cs
- SID.cs
- FilteredReadOnlyMetadataCollection.cs
- JpegBitmapEncoder.cs
- CompositeActivityValidator.cs
- ToolboxControl.cs
- MethodBuilderInstantiation.cs
- SqlCacheDependencyDatabase.cs
- RemoteWebConfigurationHostServer.cs
- ContractMapping.cs
- SearchForVirtualItemEventArgs.cs
- WindowsRichEditRange.cs
- FrameworkReadOnlyPropertyMetadata.cs
- HostProtectionPermission.cs
- VisualStyleRenderer.cs
- ProfileEventArgs.cs
- ViewLoader.cs
- Point3D.cs
- SafeRightsManagementHandle.cs
- DataListCommandEventArgs.cs
- LinqDataView.cs
- DateTimeFormatInfoScanner.cs
- GridView.cs
- RSAPKCS1KeyExchangeDeformatter.cs
- SrgsElementFactory.cs
- ConfigXmlSignificantWhitespace.cs
- Resources.Designer.cs
- RowBinding.cs
- OdbcConnectionStringbuilder.cs
- BufferedGraphicsManager.cs
- XmlDictionaryReaderQuotasElement.cs
- XPathNode.cs
- StylusEventArgs.cs
- TraceSection.cs
- GB18030Encoding.cs
- Expression.cs
- LocatorManager.cs
- assemblycache.cs
- PlacementWorkspace.cs
- SatelliteContractVersionAttribute.cs
- ToolStripOverflow.cs