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
- wgx_commands.cs
- TextFormatter.cs
- recordstatescratchpad.cs
- XmlBoundElement.cs
- DataObject.cs
- EraserBehavior.cs
- WebConvert.cs
- XPathScanner.cs
- ElementUtil.cs
- PasswordTextNavigator.cs
- TreeNode.cs
- PreviewKeyDownEventArgs.cs
- CompileLiteralTextParser.cs
- SqlBooleanizer.cs
- DrawingVisualDrawingContext.cs
- MsmqBindingMonitor.cs
- ExpressionStringBuilder.cs
- VirtualDirectoryMappingCollection.cs
- OneOfTypeConst.cs
- RuntimeHandles.cs
- TextDecorationLocationValidation.cs
- LinqDataSourceContextData.cs
- DisplayInformation.cs
- UnknownBitmapDecoder.cs
- XamlReaderHelper.cs
- BitStack.cs
- TextCharacters.cs
- PeerCredentialElement.cs
- PopOutPanel.cs
- Metafile.cs
- HeaderedContentControl.cs
- DataComponentMethodGenerator.cs
- InputReferenceExpression.cs
- storepermission.cs
- ProgressiveCrcCalculatingStream.cs
- XmlStreamedByteStreamReader.cs
- SecurityTokenValidationException.cs
- PeerApplication.cs
- PieceDirectory.cs
- UrlMappingsModule.cs
- GridProviderWrapper.cs
- LogicalExpr.cs
- FactoryRecord.cs
- SQlBooleanStorage.cs
- CryptoProvider.cs
- WorkflowApplicationEventArgs.cs
- Visitor.cs
- WorkflowWebHostingModule.cs
- ListViewItemMouseHoverEvent.cs
- RadioButtonBaseAdapter.cs
- PasswordTextNavigator.cs
- AssociationSet.cs
- ListView.cs
- ControllableStoryboardAction.cs
- Grid.cs
- ExpressionTextBox.xaml.cs
- ObjectAssociationEndMapping.cs
- XmlArrayItemAttribute.cs
- FileFormatException.cs
- EntityAdapter.cs
- SetStoryboardSpeedRatio.cs
- ValueUtilsSmi.cs
- CryptoApi.cs
- CompoundFileIOPermission.cs
- MaskedTextBox.cs
- TextPattern.cs
- HashCodeCombiner.cs
- SecurityPolicySection.cs
- Table.cs
- ConnectionPoolManager.cs
- NumericUpDown.cs
- HtmlGenericControl.cs
- TabItemWrapperAutomationPeer.cs
- SmtpSection.cs
- ClientOptions.cs
- CustomCategoryAttribute.cs
- MetadataCollection.cs
- DefaultSection.cs
- RecordManager.cs
- _FixedSizeReader.cs
- ElementUtil.cs
- Line.cs
- TdsParserSafeHandles.cs
- InputBindingCollection.cs
- ObjectNavigationPropertyMapping.cs
- Serializer.cs
- ClientUtils.cs
- RewritingSimplifier.cs
- BinaryObjectWriter.cs
- SoapIncludeAttribute.cs
- ConfigurationValidatorBase.cs
- SelectedGridItemChangedEvent.cs
- XmlFormatExtensionPointAttribute.cs
- ListView.cs
- SmtpFailedRecipientException.cs
- AutomationFocusChangedEventArgs.cs
- CreateUserWizardStep.cs
- CompilationLock.cs
- MetaForeignKeyColumn.cs
- InitializingNewItemEventArgs.cs