Code:
/ Dotnetfx_Vista_SP2 / Dotnetfx_Vista_SP2 / 8.0.50727.4016 / DEVDIV / depot / DevDiv / releases / whidbey / NetFxQFE / ndp / fx / src / Net / System / Net / Mail / SevenBitStream.cs / 1 / SevenBitStream.cs
//------------------------------------------------------------------------------ //// Copyright (c) Microsoft Corporation. All rights reserved. // //----------------------------------------------------------------------------- namespace System.Net.Mime { using System; using System.IO; ////// This stream validates outgoing bytes to be within the /// acceptible range of 0 - 127. Writes will throw if a /// value > 127 is found. /// internal class SevenBitStream : DelegatedStream { ////// ctor. /// /// Underlying stream internal SevenBitStream(Stream stream) : base(stream) { } ////// Writes the specified content to the underlying stream /// /// Buffer to write /// Offset within buffer to start writing /// Count of bytes to write /// Callback to call when write completes /// State to pass to callback public override IAsyncResult BeginWrite(byte[] buffer, int offset, int count, AsyncCallback callback, object state) { if (buffer == null) throw new ArgumentNullException("buffer"); if (offset < 0 || offset >= buffer.Length) throw new ArgumentOutOfRangeException("offset"); if (offset + count > buffer.Length) throw new ArgumentOutOfRangeException("count"); CheckBytes(buffer, offset, count); IAsyncResult result = base.BeginWrite(buffer, offset, count, callback, state); return result; } ////// Writes the specified content to the underlying stream /// /// Buffer to write /// Offset within buffer to start writing /// Count of bytes to write public override void Write(byte[] buffer, int offset, int count) { if (buffer == null) throw new ArgumentNullException("buffer"); if (offset < 0 || offset >= buffer.Length) throw new ArgumentOutOfRangeException("offset"); if (offset + count > buffer.Length) throw new ArgumentOutOfRangeException("count"); CheckBytes(buffer, offset, count); base.Write(buffer, offset, count); } // helper methods ////// Checks the data in the buffer for bytes > 127. /// /// Buffer containing data /// Offset within buffer to start checking /// Count of bytes to check void CheckBytes(byte[] buffer, int offset, int count) { for (int i = count; i < offset + count; i++) { if (buffer[i] > 127) throw new FormatException(SR.GetString(SR.Mail7BitStreamInvalidCharacter)); } } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. //------------------------------------------------------------------------------ //// Copyright (c) Microsoft Corporation. All rights reserved. // //----------------------------------------------------------------------------- namespace System.Net.Mime { using System; using System.IO; ////// This stream validates outgoing bytes to be within the /// acceptible range of 0 - 127. Writes will throw if a /// value > 127 is found. /// internal class SevenBitStream : DelegatedStream { ////// ctor. /// /// Underlying stream internal SevenBitStream(Stream stream) : base(stream) { } ////// Writes the specified content to the underlying stream /// /// Buffer to write /// Offset within buffer to start writing /// Count of bytes to write /// Callback to call when write completes /// State to pass to callback public override IAsyncResult BeginWrite(byte[] buffer, int offset, int count, AsyncCallback callback, object state) { if (buffer == null) throw new ArgumentNullException("buffer"); if (offset < 0 || offset >= buffer.Length) throw new ArgumentOutOfRangeException("offset"); if (offset + count > buffer.Length) throw new ArgumentOutOfRangeException("count"); CheckBytes(buffer, offset, count); IAsyncResult result = base.BeginWrite(buffer, offset, count, callback, state); return result; } ////// Writes the specified content to the underlying stream /// /// Buffer to write /// Offset within buffer to start writing /// Count of bytes to write public override void Write(byte[] buffer, int offset, int count) { if (buffer == null) throw new ArgumentNullException("buffer"); if (offset < 0 || offset >= buffer.Length) throw new ArgumentOutOfRangeException("offset"); if (offset + count > buffer.Length) throw new ArgumentOutOfRangeException("count"); CheckBytes(buffer, offset, count); base.Write(buffer, offset, count); } // helper methods ////// Checks the data in the buffer for bytes > 127. /// /// Buffer containing data /// Offset within buffer to start checking /// Count of bytes to check void CheckBytes(byte[] buffer, int offset, int count) { for (int i = count; i < offset + count; i++) { if (buffer[i] > 127) throw new FormatException(SR.GetString(SR.Mail7BitStreamInvalidCharacter)); } } } } // 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
- Model3DCollection.cs
- SerializationSectionGroup.cs
- MethodToken.cs
- SqlBuilder.cs
- CodeGenerator.cs
- WaitingCursor.cs
- EntityAdapter.cs
- DocumentViewerHelper.cs
- DispatchChannelSink.cs
- ListControlConvertEventArgs.cs
- InputScopeAttribute.cs
- CircleHotSpot.cs
- PrivateUnsafeNativeCompoundFileMethods.cs
- ObjectStorage.cs
- EventBindingService.cs
- XmlRawWriter.cs
- ScaleTransform3D.cs
- Graphics.cs
- ModelChangedEventArgsImpl.cs
- ShaderEffect.cs
- DrawingContext.cs
- ReflectionTypeLoadException.cs
- ProcessInfo.cs
- ImmutableCollection.cs
- VirtualDirectoryMapping.cs
- BinaryUtilClasses.cs
- MediaElementAutomationPeer.cs
- FullTextState.cs
- AsyncPostBackTrigger.cs
- ForeignKeyFactory.cs
- FontCacheUtil.cs
- DropShadowBitmapEffect.cs
- XamlStream.cs
- AccessText.cs
- SafeCloseHandleCritical.cs
- MethodRental.cs
- Util.cs
- SkewTransform.cs
- RegexParser.cs
- ClockController.cs
- DbSourceCommand.cs
- CmsInterop.cs
- NotifyInputEventArgs.cs
- FontWeights.cs
- RuntimeUtils.cs
- MembershipUser.cs
- Dynamic.cs
- SEHException.cs
- ServiceOperationInfoTypeConverter.cs
- PixelFormatConverter.cs
- AsmxEndpointPickerExtension.cs
- SystemParameters.cs
- Authorization.cs
- GenericTransactionFlowAttribute.cs
- SapiRecognizer.cs
- TextBoxAutoCompleteSourceConverter.cs
- TypeDescriptionProviderAttribute.cs
- Environment.cs
- CodeDirectoryCompiler.cs
- AttachedPropertyBrowsableWhenAttributePresentAttribute.cs
- FloaterParaClient.cs
- XPathNodeList.cs
- latinshape.cs
- RegexMatchCollection.cs
- ListBindingConverter.cs
- ScriptControlManager.cs
- BindingsCollection.cs
- PreDigestedSignedInfo.cs
- StreamGeometryContext.cs
- SkewTransform.cs
- ReferencedAssemblyResolver.cs
- AccessibilityHelperForVista.cs
- ListViewContainer.cs
- SchemaComplexType.cs
- FutureFactory.cs
- VarRefManager.cs
- CacheForPrimitiveTypes.cs
- FlowLayoutSettings.cs
- ResourceBinder.cs
- WebPartsPersonalizationAuthorization.cs
- ColumnResizeAdorner.cs
- CatalogZoneBase.cs
- FileIOPermission.cs
- DesignTimeDataBinding.cs
- ReadOnlyHierarchicalDataSource.cs
- StreamReader.cs
- StringFormat.cs
- QilPatternFactory.cs
- Int32KeyFrameCollection.cs
- CodeDelegateCreateExpression.cs
- UrlMapping.cs
- LaxModeSecurityHeaderElementInferenceEngine.cs
- BreadCrumbTextConverter.cs
- FixedMaxHeap.cs
- MarkupCompilePass2.cs
- ToolStripGripRenderEventArgs.cs
- InputReferenceExpression.cs
- DrawingContext.cs
- OptimalTextSource.cs
- TypeSystemHelpers.cs