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
- DotExpr.cs
- DataGridViewMethods.cs
- File.cs
- _ScatterGatherBuffers.cs
- XPathAncestorIterator.cs
- WorkflowInstanceTerminatedRecord.cs
- CodeArrayIndexerExpression.cs
- FixedTextContainer.cs
- MenuStrip.cs
- FontSizeConverter.cs
- TextServicesCompartmentContext.cs
- TCPClient.cs
- Floater.cs
- ToolStripSplitButton.cs
- XmlSchemaInferenceException.cs
- IssuedSecurityTokenParameters.cs
- NetworkInformationPermission.cs
- DelegatingConfigHost.cs
- ReturnEventArgs.cs
- CommonObjectSecurity.cs
- EntityCollection.cs
- NoneExcludedImageIndexConverter.cs
- CombinedGeometry.cs
- WorkflowInstanceTerminatedRecord.cs
- SimplePropertyEntry.cs
- Publisher.cs
- CollectionViewSource.cs
- SafeMILHandle.cs
- XmlException.cs
- InteropEnvironment.cs
- TextCharacters.cs
- D3DImage.cs
- RecommendedAsConfigurableAttribute.cs
- WebPartEditorCancelVerb.cs
- StorageModelBuildProvider.cs
- Trace.cs
- WebPartTransformerCollection.cs
- AssemblyBuilderData.cs
- Tuple.cs
- ViewStateException.cs
- TemplatePropertyEntry.cs
- DateRangeEvent.cs
- AppearanceEditorPart.cs
- BaseDataList.cs
- Win32KeyboardDevice.cs
- ChangeBlockUndoRecord.cs
- DynamicRenderer.cs
- ResourceReader.cs
- TcpStreams.cs
- MouseGestureConverter.cs
- FixedSOMSemanticBox.cs
- MetadataAssemblyHelper.cs
- FormViewDeletedEventArgs.cs
- DynamicResourceExtension.cs
- XmlNodeChangedEventManager.cs
- TypedRowGenerator.cs
- ToolCreatedEventArgs.cs
- SspiSecurityTokenProvider.cs
- ExpressionHelper.cs
- ObjectDataSource.cs
- MetadataElement.cs
- MouseBinding.cs
- SymbolMethod.cs
- FlowDocumentScrollViewer.cs
- StartUpEventArgs.cs
- UIPermission.cs
- UInt64Storage.cs
- TextRangeEditTables.cs
- EventLogPermissionEntryCollection.cs
- MdiWindowListItemConverter.cs
- MetadataException.cs
- CmsUtils.cs
- RemotingConfiguration.cs
- ArrayHelper.cs
- CodeCatchClause.cs
- InputLanguageCollection.cs
- EventManager.cs
- CustomLineCap.cs
- ListBindingConverter.cs
- RequestCache.cs
- Image.cs
- RecognizerBase.cs
- DesignerActionVerbItem.cs
- LoginStatusDesigner.cs
- BrowserCapabilitiesFactory.cs
- MouseDevice.cs
- Exceptions.cs
- ResourceAttributes.cs
- UrlAuthFailureHandler.cs
- DataServiceConfiguration.cs
- DataServiceKeyAttribute.cs
- ComponentEditorPage.cs
- CompiledELinqQueryState.cs
- TypefaceCollection.cs
- CompiledXpathExpr.cs
- DispatcherHookEventArgs.cs
- MetaData.cs
- HttpDateParse.cs
- XsltLibrary.cs
- SimplePropertyEntry.cs