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
- CompositionDesigner.cs
- Size3D.cs
- IPipelineRuntime.cs
- FormViewInsertEventArgs.cs
- PingOptions.cs
- CreateUserWizardStep.cs
- CmsInterop.cs
- DelayDesigner.cs
- CleanUpVirtualizedItemEventArgs.cs
- ToolStripItemDesigner.cs
- OleDbReferenceCollection.cs
- CodeMethodReturnStatement.cs
- FormView.cs
- OneOfConst.cs
- ProgressChangedEventArgs.cs
- ConfigurationHandlersInstallComponent.cs
- ModulesEntry.cs
- Drawing.cs
- RequiredFieldValidator.cs
- MapPathBasedVirtualPathProvider.cs
- GuidelineSet.cs
- StartUpEventArgs.cs
- PingReply.cs
- SimpleBitVector32.cs
- SystemColors.cs
- TreeViewCancelEvent.cs
- MethodBuilderInstantiation.cs
- Visual.cs
- AnimationClock.cs
- SyncOperationState.cs
- InvokeWebService.cs
- Table.cs
- ShaderEffect.cs
- WebFaultClientMessageInspector.cs
- PositiveTimeSpanValidator.cs
- ImageClickEventArgs.cs
- VectorConverter.cs
- TraceUtility.cs
- IDQuery.cs
- CategoryNameCollection.cs
- EventQueueState.cs
- CatalogPart.cs
- TextDecorationLocationValidation.cs
- ResizeGrip.cs
- System.Data.OracleClient_BID.cs
- FixedTextBuilder.cs
- TraceContextEventArgs.cs
- EntityDataSourceContainerNameItem.cs
- BitmapEffectCollection.cs
- WebRequest.cs
- NonBatchDirectoryCompiler.cs
- ErasingStroke.cs
- DataSourceSelectArguments.cs
- XAMLParseException.cs
- Int32AnimationBase.cs
- ErrorRuntimeConfig.cs
- HostAdapter.cs
- ProfessionalColorTable.cs
- HttpListenerException.cs
- Oci.cs
- GenerateTemporaryTargetAssembly.cs
- HTTPNotFoundHandler.cs
- PublisherIdentityPermission.cs
- CssTextWriter.cs
- RtfFormatStack.cs
- UIElementParagraph.cs
- PolicyValidationException.cs
- ColumnCollection.cs
- Vector3DKeyFrameCollection.cs
- SymbolTable.cs
- DataRecordObjectView.cs
- SimpleApplicationHost.cs
- ApplicationSecurityInfo.cs
- XmlSchemaSimpleContentExtension.cs
- DiscoveryMessageSequenceGenerator.cs
- RecordsAffectedEventArgs.cs
- FileDialog_Vista.cs
- QueryOutputWriter.cs
- ToolStripProgressBar.cs
- PersonalizationStateQuery.cs
- SvcMapFileLoader.cs
- TraceSwitch.cs
- ButtonField.cs
- WindowsTitleBar.cs
- diagnosticsswitches.cs
- FileIOPermission.cs
- HtmlPhoneCallAdapter.cs
- DefaultTextStore.cs
- KeyPullup.cs
- SemaphoreSecurity.cs
- TextEditorContextMenu.cs
- FixedSOMTableRow.cs
- Converter.cs
- TcpConnectionPoolSettingsElement.cs
- Exception.cs
- ExceptionRoutedEventArgs.cs
- UpDownEvent.cs
- FileRecordSequenceCompletedAsyncResult.cs
- _ScatterGatherBuffers.cs
- SequenceDesigner.cs