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
- FileRecordSequence.cs
- EmptyStringExpandableObjectConverter.cs
- ImageAnimator.cs
- CalendarDateChangedEventArgs.cs
- NumericUpDown.cs
- Regex.cs
- __TransparentProxy.cs
- BidOverLoads.cs
- ResourceContainer.cs
- PhoneCallDesigner.cs
- StateChangeEvent.cs
- RuleRef.cs
- CompoundFileStorageReference.cs
- XmlSerializationGeneratedCode.cs
- LogRecordSequence.cs
- BatchStream.cs
- DateTimePicker.cs
- KeyToListMap.cs
- AnnotationService.cs
- Vector3DAnimationUsingKeyFrames.cs
- XamlSerializerUtil.cs
- ADMembershipUser.cs
- PointConverter.cs
- SynchronizedReadOnlyCollection.cs
- NonSerializedAttribute.cs
- SqlDependencyUtils.cs
- BitmapVisualManager.cs
- Monitor.cs
- ConversionHelper.cs
- SynchronizationContext.cs
- ListBoxChrome.cs
- FolderLevelBuildProviderAppliesToAttribute.cs
- DependencyPropertyKey.cs
- WebPartUserCapability.cs
- ExceptionUtil.cs
- BStrWrapper.cs
- EntityDataSourceEntityTypeFilterConverter.cs
- HttpProxyCredentialType.cs
- SystemIPGlobalProperties.cs
- FileChangeNotifier.cs
- Screen.cs
- RegistrationServices.cs
- ArgumentOutOfRangeException.cs
- ScalarType.cs
- EdmFunction.cs
- ProjectionPruner.cs
- SecurityUtils.cs
- oledbmetadatacollectionnames.cs
- CanonicalFontFamilyReference.cs
- HttpModuleCollection.cs
- ListParaClient.cs
- DataServiceRequest.cs
- RegexBoyerMoore.cs
- SoapDocumentMethodAttribute.cs
- SqlAggregateChecker.cs
- BitmapMetadata.cs
- RequestQueryParser.cs
- ExclusiveCanonicalizationTransform.cs
- ListViewGroupConverter.cs
- ValidationErrorCollection.cs
- Blend.cs
- PanelStyle.cs
- EventSinkHelperWriter.cs
- SQLMoneyStorage.cs
- NodeFunctions.cs
- Variable.cs
- ErrorFormatterPage.cs
- DetailsViewInsertedEventArgs.cs
- TargetInvocationException.cs
- SortableBindingList.cs
- PolyLineSegment.cs
- PaintValueEventArgs.cs
- DynamicPropertyHolder.cs
- RowsCopiedEventArgs.cs
- SecurityHelper.cs
- Stack.cs
- DeploymentSection.cs
- SpellCheck.cs
- SrgsDocument.cs
- Int32AnimationUsingKeyFrames.cs
- Vector.cs
- CodeCatchClause.cs
- ScrollContentPresenter.cs
- SerializationHelper.cs
- TypeValidationEventArgs.cs
- errorpatternmatcher.cs
- x509store.cs
- PointConverter.cs
- SafeProcessHandle.cs
- MergeLocalizationDirectives.cs
- InputProcessorProfiles.cs
- Encoder.cs
- UriExt.cs
- SqlWriter.cs
- ApplicationServiceManager.cs
- SchemaNotation.cs
- AnimatedTypeHelpers.cs
- TreeViewImageIndexConverter.cs
- OpenFileDialog.cs
- PageStatePersister.cs