Code:
/ Dotnetfx_Vista_SP2 / Dotnetfx_Vista_SP2 / 8.0.50727.4016 / DEVDIV / depot / DevDiv / releases / whidbey / NetFxQFE / 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
- RIPEMD160.cs
- BindingListCollectionView.cs
- SignatureGenerator.cs
- ChangePassword.cs
- BrushMappingModeValidation.cs
- SqlDataSourceEnumerator.cs
- ClientUrlResolverWrapper.cs
- httpapplicationstate.cs
- SponsorHelper.cs
- HttpResponseWrapper.cs
- PageBuildProvider.cs
- XmlTextReaderImplHelpers.cs
- ValidationErrorCollection.cs
- WhitespaceSignificantCollectionAttribute.cs
- StrongNameUtility.cs
- HotCommands.cs
- TextSimpleMarkerProperties.cs
- FacetDescriptionElement.cs
- StringStorage.cs
- SafeViewOfFileHandle.cs
- FusionWrap.cs
- FileUpload.cs
- RtfToXamlReader.cs
- ChangeNode.cs
- ResourceType.cs
- SettingsContext.cs
- XmlNode.cs
- TrackingValidationObjectDictionary.cs
- DefinitionBase.cs
- BeginStoryboard.cs
- ScriptControl.cs
- EventLogEntry.cs
- DelegatingChannelListener.cs
- DecoderFallbackWithFailureFlag.cs
- _RequestCacheProtocol.cs
- CharacterShapingProperties.cs
- LayoutSettings.cs
- SelectionHighlightInfo.cs
- CatalogPartCollection.cs
- SchemaTypeEmitter.cs
- WebBrowserSiteBase.cs
- HiddenField.cs
- DataPointer.cs
- CustomError.cs
- XmlSchemaCollection.cs
- TextEndOfParagraph.cs
- FixedBufferAttribute.cs
- PropertyToken.cs
- ToolStripOverflowButton.cs
- WebCategoryAttribute.cs
- InfoCardRSAPKCS1KeyExchangeDeformatter.cs
- XmlQueryOutput.cs
- XhtmlBasicSelectionListAdapter.cs
- ValidationHelper.cs
- ModelVisual3D.cs
- XmlDataLoader.cs
- FactoryGenerator.cs
- TTSEngineTypes.cs
- DateRangeEvent.cs
- ConfigurationErrorsException.cs
- ContentType.cs
- XmlEncApr2001.cs
- mil_commands.cs
- GlyphInfoList.cs
- XPathBinder.cs
- EventHandlerList.cs
- SystemUnicastIPAddressInformation.cs
- DataSourceControl.cs
- TypeConvertions.cs
- _NTAuthentication.cs
- ReadOnlyDictionary.cs
- wgx_exports.cs
- Label.cs
- cache.cs
- ObjectDataSourceSelectingEventArgs.cs
- CodeGroup.cs
- HTMLTextWriter.cs
- HttpListenerResponse.cs
- SystemEvents.cs
- DataGridItem.cs
- PreservationFileWriter.cs
- XPathExpr.cs
- BooleanExpr.cs
- ExecutedRoutedEventArgs.cs
- FixedSOMGroup.cs
- InvalidWMPVersionException.cs
- FrameworkElement.cs
- XmlSchemaComplexType.cs
- IssuedTokenClientBehaviorsElementCollection.cs
- PolicyAssertionCollection.cs
- BinarySecretKeyIdentifierClause.cs
- DataGridViewColumnDesignTimeVisibleAttribute.cs
- HtmlInputReset.cs
- DragStartedEventArgs.cs
- AdPostCacheSubstitution.cs
- DataServiceEntityAttribute.cs
- RecordManager.cs
- URLIdentityPermission.cs
- TextElementAutomationPeer.cs
- ModelPropertyImpl.cs