Code:
/ 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / Net / System / Net / Mail / BufferBuilder.cs / 1305376 / 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) { if (!String.IsNullOrEmpty(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, c)); 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) { if (!String.IsNullOrEmpty(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, c)); 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
- ClonableStack.cs
- NegotiateStream.cs
- DataServiceException.cs
- DataViewSettingCollection.cs
- DispatcherOperation.cs
- RegistrationServices.cs
- linebase.cs
- XslTransformFileEditor.cs
- DropShadowBitmapEffect.cs
- BasePropertyDescriptor.cs
- WindowsSysHeader.cs
- MouseActionConverter.cs
- ImmutablePropertyDescriptorGridEntry.cs
- TextEditorThreadLocalStore.cs
- HMACSHA1.cs
- QilTargetType.cs
- SystemWebCachingSectionGroup.cs
- DecimalStorage.cs
- GeometryConverter.cs
- Int32Collection.cs
- Compensate.cs
- PeerInvitationResponse.cs
- ByteRangeDownloader.cs
- DataBindingValueUIHandler.cs
- ObsoleteAttribute.cs
- BounceEase.cs
- RtfToken.cs
- MissingManifestResourceException.cs
- StrokeNodeOperations2.cs
- RectangleGeometry.cs
- DataGridColumnHeadersPresenterAutomationPeer.cs
- SiteMapNodeItemEventArgs.cs
- Viewport2DVisual3D.cs
- ScriptingRoleServiceSection.cs
- PageAsyncTaskManager.cs
- NonVisualControlAttribute.cs
- DockAndAnchorLayout.cs
- WSTrustFeb2005.cs
- RegexMatchCollection.cs
- PolyQuadraticBezierSegment.cs
- ObjectViewQueryResultData.cs
- InertiaExpansionBehavior.cs
- XslTransform.cs
- DelayDesigner.cs
- RadioButton.cs
- EngineSite.cs
- CrossContextChannel.cs
- Page.cs
- XamlGridLengthSerializer.cs
- OdbcErrorCollection.cs
- DiscoveryExceptionDictionary.cs
- XmlDataSourceView.cs
- ClientEventManager.cs
- AnnotationResource.cs
- WebPartMenu.cs
- _Connection.cs
- TimeoutException.cs
- EditCommandColumn.cs
- SecurityElement.cs
- CapabilitiesRule.cs
- DrawingContextDrawingContextWalker.cs
- ContainerControl.cs
- SqlUnionizer.cs
- DataTemplateKey.cs
- AssemblyInfo.cs
- ValidatorAttribute.cs
- HttpAsyncResult.cs
- StrokeNodeOperations2.cs
- BrowserCapabilitiesFactory.cs
- MetadataHelper.cs
- ClientSettingsSection.cs
- ControlCollection.cs
- CultureNotFoundException.cs
- GPRECTF.cs
- ConsumerConnectionPointCollection.cs
- CategoryNameCollection.cs
- FormatConvertedBitmap.cs
- AnnotationStore.cs
- RoutedEventHandlerInfo.cs
- TypeUtils.cs
- Helpers.cs
- TransactionsSectionGroup.cs
- XdrBuilder.cs
- ColumnWidthChangingEvent.cs
- TypeToken.cs
- ObjectConverter.cs
- DesignerTransactionCloseEvent.cs
- HierarchicalDataBoundControl.cs
- RightsManagementInformation.cs
- DataGridColumnHeaderCollection.cs
- TimeoutTimer.cs
- XmlAttribute.cs
- ThemeableAttribute.cs
- FontEmbeddingManager.cs
- TransactionScope.cs
- SessionStateContainer.cs
- NamedObject.cs
- PtsHost.cs
- GridViewAutomationPeer.cs
- ClientProxyGenerator.cs