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
- GeneratedView.cs
- KeyboardNavigation.cs
- WebServicesSection.cs
- ServiceNotStartedException.cs
- GroupAggregateExpr.cs
- AdjustableArrowCap.cs
- CreatingCookieEventArgs.cs
- FixedPageStructure.cs
- TextFormatter.cs
- ProjectionCamera.cs
- DataServiceRequest.cs
- ToolboxSnapDragDropEventArgs.cs
- ClassicBorderDecorator.cs
- PassportPrincipal.cs
- Typography.cs
- SystemIPv4InterfaceProperties.cs
- QueueException.cs
- Storyboard.cs
- CodePageEncoding.cs
- WorkItem.cs
- OptimizerPatterns.cs
- StackBuilderSink.cs
- WebEventCodes.cs
- GenericArgumentsUpdater.cs
- HuffCodec.cs
- Parser.cs
- BindingValueChangedEventArgs.cs
- TypeDescriptor.cs
- ContextQuery.cs
- ConstructorBuilder.cs
- MailAddress.cs
- DbgCompiler.cs
- FormsAuthentication.cs
- DescendentsWalkerBase.cs
- SpellerError.cs
- TcpSocketManager.cs
- SerializableAttribute.cs
- VariableQuery.cs
- TypeGeneratedEventArgs.cs
- SvcMapFileSerializer.cs
- LineUtil.cs
- PartialCachingAttribute.cs
- WorkflowElementDialogWindow.xaml.cs
- DependencyPropertyKind.cs
- PlainXmlDeserializer.cs
- CellPartitioner.cs
- SimpleHandlerFactory.cs
- ExpressionNormalizer.cs
- WrapPanel.cs
- DiscardableAttribute.cs
- AssemblyUtil.cs
- EmptyEnumerable.cs
- ReaderWriterLock.cs
- SerializationTrace.cs
- DateBoldEvent.cs
- Version.cs
- CompositeCollectionView.cs
- ListQueryResults.cs
- Point4D.cs
- TextBreakpoint.cs
- IgnorePropertiesAttribute.cs
- TimeZoneInfo.cs
- PolicyManager.cs
- HashStream.cs
- StringInfo.cs
- SEHException.cs
- EditorZoneBase.cs
- ToolStripContainer.cs
- WindowProviderWrapper.cs
- ContainerControl.cs
- SubMenuStyleCollectionEditor.cs
- TextSegment.cs
- AssemblyInfo.cs
- HwndMouseInputProvider.cs
- Brush.cs
- JavaScriptSerializer.cs
- InputReport.cs
- TypographyProperties.cs
- TraceLevelStore.cs
- FixedSOMGroup.cs
- SourceFileBuildProvider.cs
- SmiEventSink.cs
- CodeDefaultValueExpression.cs
- DesignerDeviceConfig.cs
- TextShapeableCharacters.cs
- PageSettings.cs
- CompositeTypefaceMetrics.cs
- UntrustedRecipientException.cs
- CompilerWrapper.cs
- AbsoluteQuery.cs
- TypedTableBaseExtensions.cs
- ApplicationHost.cs
- Stylesheet.cs
- serverconfig.cs
- UserControl.cs
- EdmToObjectNamespaceMap.cs
- Speller.cs
- SessionState.cs
- Range.cs
- DecimalConverter.cs