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
- OptimizedTemplateContent.cs
- odbcmetadatacollectionnames.cs
- DoubleAnimationUsingPath.cs
- CalendarDataBindingHandler.cs
- FromRequest.cs
- ActiveDesignSurfaceEvent.cs
- ForceCopyBuildProvider.cs
- QuestionEventArgs.cs
- ValidateNames.cs
- EnvelopedSignatureTransform.cs
- EDesignUtil.cs
- DocumentEventArgs.cs
- COM2Properties.cs
- WinEventTracker.cs
- DBPropSet.cs
- PropertyOverridesTypeEditor.cs
- SchemaContext.cs
- SearchForVirtualItemEventArgs.cs
- GeometryCollection.cs
- WindowsRebar.cs
- SqlBulkCopyColumnMapping.cs
- OptionUsage.cs
- AnimatedTypeHelpers.cs
- SqlDelegatedTransaction.cs
- FormViewInsertedEventArgs.cs
- QueueTransferProtocol.cs
- MediaPlayerState.cs
- CqlIdentifiers.cs
- SqlTriggerAttribute.cs
- QilPatternVisitor.cs
- XmlDataSourceView.cs
- RewritingProcessor.cs
- UnhandledExceptionEventArgs.cs
- MissingManifestResourceException.cs
- CombinedGeometry.cs
- RowToFieldTransformer.cs
- DocumentXmlWriter.cs
- ProviderUtil.cs
- Size3D.cs
- EditorPart.cs
- DesignerCapabilities.cs
- WizardStepBase.cs
- SQLGuid.cs
- ToolBarButtonDesigner.cs
- PropertyToken.cs
- ComplexBindingPropertiesAttribute.cs
- XmlChildNodes.cs
- ListCollectionView.cs
- MsmqIntegrationChannelFactory.cs
- mediapermission.cs
- CallbackDebugBehavior.cs
- CaseStatement.cs
- HtmlLinkAdapter.cs
- DateTimeOffsetStorage.cs
- QuadraticBezierSegment.cs
- GlobalItem.cs
- UniqueID.cs
- BasicExpandProvider.cs
- InheritedPropertyChangedEventArgs.cs
- TextParaClient.cs
- DbSetClause.cs
- DbDataRecord.cs
- MsmqEncryptionAlgorithm.cs
- WebBrowser.cs
- Misc.cs
- WinInetCache.cs
- WriteableOnDemandPackagePart.cs
- HtmlShimManager.cs
- EntityStoreSchemaFilterEntry.cs
- DataGrid.cs
- ToolStripDropTargetManager.cs
- ObjectNotFoundException.cs
- CodeVariableReferenceExpression.cs
- Int32EqualityComparer.cs
- Int16Converter.cs
- DetailsViewInsertedEventArgs.cs
- HTMLTagNameToTypeMapper.cs
- DataGridViewColumnConverter.cs
- ItemContainerProviderWrapper.cs
- BooleanToVisibilityConverter.cs
- DependencyProperty.cs
- URIFormatException.cs
- ThreadStartException.cs
- SpinWait.cs
- OracleMonthSpan.cs
- TypeDependencyAttribute.cs
- XmlRawWriter.cs
- ExceptionRoutedEventArgs.cs
- SecuritySessionClientSettings.cs
- SafeCancelMibChangeNotify.cs
- RegexCapture.cs
- COM2ColorConverter.cs
- OleDbReferenceCollection.cs
- LinearQuaternionKeyFrame.cs
- PeerNameRegistration.cs
- AspCompat.cs
- KeyEvent.cs
- WebPartChrome.cs
- OdbcDataReader.cs
- DataBindingCollection.cs