Code:
/ Dotnetfx_Win7_3.5.1 / Dotnetfx_Win7_3.5.1 / 3.5.1 / DEVDIV / depot / DevDiv / releases / whidbey / NetFXspW7 / 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
- GraphicsContainer.cs
- LinkConverter.cs
- CreateUserErrorEventArgs.cs
- SerializationStore.cs
- CodeDomConfigurationHandler.cs
- ExportFileRequest.cs
- ImageDrawing.cs
- DataGridBoolColumn.cs
- RelatedEnd.cs
- DependencyPropertyConverter.cs
- DebugView.cs
- ServiceNameCollection.cs
- DragStartedEventArgs.cs
- ExpressionPrefixAttribute.cs
- RSAPKCS1KeyExchangeFormatter.cs
- DataServiceProviderWrapper.cs
- DrawingGroup.cs
- HttpDebugHandler.cs
- ChtmlTextWriter.cs
- PersonalizationStateInfoCollection.cs
- Literal.cs
- ServiceContractGenerationContext.cs
- ProcessModelInfo.cs
- Setter.cs
- ConnectionConsumerAttribute.cs
- Geometry3D.cs
- Constants.cs
- RowVisual.cs
- CodeNamespaceCollection.cs
- NamedPipeProcessProtocolHandler.cs
- Pen.cs
- ArrayTypeMismatchException.cs
- SystemUnicastIPAddressInformation.cs
- WsdlBuildProvider.cs
- SelectionHighlightInfo.cs
- BehaviorService.cs
- wpf-etw.cs
- Transform.cs
- ValueUtilsSmi.cs
- TextFormattingConverter.cs
- ScopelessEnumAttribute.cs
- AvTraceDetails.cs
- SQLCharsStorage.cs
- EntityDataSourceStatementEditor.cs
- WebPartMovingEventArgs.cs
- WhiteSpaceTrimStringConverter.cs
- DesignerSerializationOptionsAttribute.cs
- LoginName.cs
- RenderContext.cs
- BitmapEditor.cs
- FixedElement.cs
- CollaborationHelperFunctions.cs
- XmlSchemaCollection.cs
- CharacterMetricsDictionary.cs
- XmlDomTextWriter.cs
- WpfKnownMember.cs
- OleDbInfoMessageEvent.cs
- CompressStream.cs
- smtpconnection.cs
- X509CertificateValidator.cs
- Substitution.cs
- WindowsAuthenticationModule.cs
- PolyBezierSegment.cs
- FilteredDataSetHelper.cs
- HttpTransportElement.cs
- PersistChildrenAttribute.cs
- DotExpr.cs
- HostedHttpTransportManager.cs
- DocumentViewerHelper.cs
- ClrPerspective.cs
- XmlLanguage.cs
- PasswordBox.cs
- DataGridViewColumnEventArgs.cs
- PointConverter.cs
- PropertyValueChangedEvent.cs
- assemblycache.cs
- PipeStream.cs
- CompilerCollection.cs
- BasicExpandProvider.cs
- ListSortDescriptionCollection.cs
- Thickness.cs
- UInt32Converter.cs
- TextEditorThreadLocalStore.cs
- ShaderEffect.cs
- DataGridViewHitTestInfo.cs
- LocalServiceSecuritySettingsElement.cs
- ConfigurationConverterBase.cs
- AutoGeneratedFieldProperties.cs
- CatalogPartChrome.cs
- ServerType.cs
- DataPagerFieldItem.cs
- DockAndAnchorLayout.cs
- ApplicationFileParser.cs
- BindingValueChangedEventArgs.cs
- XslException.cs
- ValidationHelper.cs
- EpmAttributeNameBuilder.cs
- OleDbRowUpdatedEvent.cs
- DetailsViewRowCollection.cs
- RangeContentEnumerator.cs