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
- DBSqlParserColumnCollection.cs
- LinkLabel.cs
- EventLogInformation.cs
- WizardPanelChangingEventArgs.cs
- Debug.cs
- PriorityBindingExpression.cs
- MailSettingsSection.cs
- Membership.cs
- CodeMemberEvent.cs
- DataBoundControl.cs
- AlternationConverter.cs
- DataGridViewComboBoxColumn.cs
- EventLog.cs
- NavigationExpr.cs
- XmlNodeChangedEventArgs.cs
- _TimerThread.cs
- MsdtcClusterUtils.cs
- FloatUtil.cs
- TemplateBamlRecordReader.cs
- RenderContext.cs
- BrowserTree.cs
- _IPv4Address.cs
- ReadOnlyHierarchicalDataSource.cs
- DataBoundLiteralControl.cs
- HtmlElementCollection.cs
- SizeFConverter.cs
- AggregatePushdown.cs
- PolygonHotSpot.cs
- ObjectSecurity.cs
- ColorDialog.cs
- OleDbDataReader.cs
- ValueOfAction.cs
- PasswordBoxAutomationPeer.cs
- Stopwatch.cs
- Transform.cs
- ShaperBuffers.cs
- ClientBuildManagerCallback.cs
- MulticastDelegate.cs
- RegularExpressionValidator.cs
- DataObjectPastingEventArgs.cs
- HttpListenerRequestUriBuilder.cs
- TempFiles.cs
- SqlCacheDependencyDatabase.cs
- DispatchWrapper.cs
- TextParaLineResult.cs
- ObjectContextServiceProvider.cs
- IPGlobalProperties.cs
- SqlUserDefinedAggregateAttribute.cs
- TraceEventCache.cs
- Int16Converter.cs
- ExecutionEngineException.cs
- HttpsHostedTransportConfiguration.cs
- DirectionalLight.cs
- GeometryGroup.cs
- ISCIIEncoding.cs
- MenuAutomationPeer.cs
- XPathDocumentBuilder.cs
- ApplicationSecurityInfo.cs
- HtmlButton.cs
- TraceShell.cs
- MenuAdapter.cs
- WebBrowsableAttribute.cs
- SequentialUshortCollection.cs
- Atom10FormatterFactory.cs
- Assert.cs
- CellTreeNode.cs
- localization.cs
- BamlTreeNode.cs
- MsmqIntegrationReceiveParameters.cs
- WebScriptMetadataMessageEncoderFactory.cs
- DefaultObjectMappingItemCollection.cs
- Authorization.cs
- Blend.cs
- LockingPersistenceProvider.cs
- WebConvert.cs
- SQLInt64.cs
- HashAlgorithm.cs
- ReflectionTypeLoadException.cs
- securitycriticaldataformultiplegetandset.cs
- TdsParserSessionPool.cs
- GeometryValueSerializer.cs
- DynamicDataManager.cs
- SoapAttributes.cs
- Timeline.cs
- NameValueConfigurationElement.cs
- BitmapDecoder.cs
- CheckoutException.cs
- CallbackBehaviorAttribute.cs
- WorkflowTimerService.cs
- RequestCachingSection.cs
- TextEditorDragDrop.cs
- ADRoleFactoryConfiguration.cs
- RemoteDebugger.cs
- TextRangeEditLists.cs
- StrokeNodeData.cs
- XmlNodeChangedEventManager.cs
- IndependentAnimationStorage.cs
- ScrollBarAutomationPeer.cs
- DataObjectFieldAttribute.cs
- QilStrConcat.cs