Code:
/ WCF / WCF / 3.5.30729.1 / untmp / Orcas / SP / ndp / cdf / src / WCF / ServiceModel / System / ServiceModel / Channels / TcpTransportBindingElement.cs / 1 / TcpTransportBindingElement.cs
//------------------------------------------------------------ // Copyright (c) Microsoft Corporation. All rights reserved. //----------------------------------------------------------- namespace System.ServiceModel.Channels { using System.ServiceModel.Activation; using System.Collections.Generic; using System.Net; using System.Net.Security; using System.Net.Sockets; using System.Runtime.Serialization; using System.Xml; public class TcpTransportBindingElement : ConnectionOrientedTransportBindingElement { int listenBacklog; bool portSharingEnabled; bool teredoEnabled; TcpConnectionPoolSettings connectionPoolSettings; public TcpTransportBindingElement() : base() { this.listenBacklog = TcpTransportDefaults.ListenBacklog; this.portSharingEnabled = TcpTransportDefaults.PortSharingEnabled; this.teredoEnabled = TcpTransportDefaults.TeredoEnabled; this.connectionPoolSettings = new TcpConnectionPoolSettings(); } protected TcpTransportBindingElement(TcpTransportBindingElement elementToBeCloned) : base(elementToBeCloned) { this.listenBacklog = elementToBeCloned.listenBacklog; this.portSharingEnabled = elementToBeCloned.portSharingEnabled; this.teredoEnabled = elementToBeCloned.teredoEnabled; this.connectionPoolSettings = elementToBeCloned.connectionPoolSettings.Clone(); } public TcpConnectionPoolSettings ConnectionPoolSettings { get { return this.connectionPoolSettings; } } public int ListenBacklog { get { return this.listenBacklog; } set { if (value <= 0) { throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new ArgumentOutOfRangeException("value", SR.GetString(SR.ValueMustBePositive))); } this.listenBacklog = value; } } // server public bool PortSharingEnabled { get { return this.portSharingEnabled; } set { this.portSharingEnabled = value; } } public override string Scheme { get { return "net.tcp"; } } // server public bool TeredoEnabled { get { return this.teredoEnabled; } set { this.teredoEnabled = value; } } internal override string WsdlTransportUri { get { return TransportPolicyConstants.TcpTransportUri; } } public override BindingElement Clone() { return new TcpTransportBindingElement(this); } public override IChannelFactoryBuildChannelFactory (BindingContext context) { if (context == null) { throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgumentNull("context"); } if (!this.CanBuildChannelFactory (context)) { throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgument("TChannel", SR.GetString(SR.ChannelTypeNotSupported, typeof(TChannel))); } return (IChannelFactory )(object)new TcpChannelFactory (this, context); } public override IChannelListener BuildChannelListener (BindingContext context) { if (context == null) { throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgumentNull("context"); } if (!this.CanBuildChannelListener (context)) { throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgument("TChannel", SR.GetString(SR.ChannelTypeNotSupported, typeof(TChannel))); } TcpChannelListener listener; if (typeof(TChannel) == typeof(IReplyChannel)) { listener = new TcpReplyChannelListener(this, context); } else if (typeof(TChannel) == typeof(IDuplexSessionChannel)) { listener = new TcpDuplexChannelListener(this, context); } else { throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgument("TChannel", SR.GetString(SR.ChannelTypeNotSupported, typeof(TChannel))); } VirtualPathExtension.ApplyHostedContext(listener, context); return (IChannelListener )(object)listener; } public override T GetProperty (BindingContext context) { if (context == null) { throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgumentNull("context"); } if (typeof(T) == typeof(IBindingDeliveryCapabilities)) { return (T)(object)new BindingDeliveryCapabilitiesHelper(); } else { return base.GetProperty (context); } } internal override bool IsMatch(BindingElement b) { if (!base.IsMatch(b)) { return false; } TcpTransportBindingElement tcp = b as TcpTransportBindingElement; if (tcp == null) { return false; } if (this.listenBacklog != tcp.listenBacklog) { return false; } if (this.portSharingEnabled != tcp.portSharingEnabled) { return false; } if (this.teredoEnabled != tcp.teredoEnabled) { return false; } if (!this.connectionPoolSettings.IsMatch(tcp.connectionPoolSettings)) { return false; } return true; } class BindingDeliveryCapabilitiesHelper : IBindingDeliveryCapabilities { internal BindingDeliveryCapabilitiesHelper() { } bool IBindingDeliveryCapabilities.AssuresOrderedDelivery { get { return true; } } bool IBindingDeliveryCapabilities.QueuedDelivery { get { return false; } } } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. // Copyright (c) Microsoft Corporation. All rights reserved.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- BinaryMessageFormatter.cs
- PageContentCollection.cs
- MarkupCompilePass1.cs
- RemotingException.cs
- XsdDuration.cs
- EntityDataSourceSelectingEventArgs.cs
- HttpVersion.cs
- CollectionViewSource.cs
- DecimalConstantAttribute.cs
- LocalizableAttribute.cs
- WindowHelperService.cs
- PackagePart.cs
- InternalControlCollection.cs
- SuppressIldasmAttribute.cs
- DecoderExceptionFallback.cs
- GlobalEventManager.cs
- TempEnvironment.cs
- RectangleF.cs
- GenericWebPart.cs
- TreeWalker.cs
- ScalarOps.cs
- MethodBuilderInstantiation.cs
- CollectionBuilder.cs
- DataGridSortCommandEventArgs.cs
- Visitor.cs
- ProgressiveCrcCalculatingStream.cs
- ActivityCompletionCallbackWrapper.cs
- StrokeNodeEnumerator.cs
- IpcClientChannel.cs
- CompilationUtil.cs
- BindingEditor.xaml.cs
- DrawTreeNodeEventArgs.cs
- ObjectNavigationPropertyMapping.cs
- WebPartEditorApplyVerb.cs
- XamlBrushSerializer.cs
- Point3D.cs
- ApplicationGesture.cs
- DesignerRegion.cs
- AttachedAnnotation.cs
- LoginUtil.cs
- VoiceInfo.cs
- SerializationObjectManager.cs
- PlaceHolder.cs
- ListItemCollection.cs
- controlskin.cs
- WebPartCancelEventArgs.cs
- WmlMobileTextWriter.cs
- PointCollection.cs
- CollectionViewProxy.cs
- ConsoleKeyInfo.cs
- EdmComplexTypeAttribute.cs
- EventMappingSettingsCollection.cs
- FormatPage.cs
- DirectoryNotFoundException.cs
- ArithmeticException.cs
- XPathSelfQuery.cs
- AuthenticationService.cs
- TextCompositionEventArgs.cs
- BroadcastEventHelper.cs
- ValidationResults.cs
- HtmlToClrEventProxy.cs
- IListConverters.cs
- FileDialogCustomPlacesCollection.cs
- UrlPath.cs
- DecimalFormatter.cs
- DataGridItemEventArgs.cs
- AbstractDataSvcMapFileLoader.cs
- DtdParser.cs
- HuffCodec.cs
- XmlEntityReference.cs
- AttachedAnnotation.cs
- ResolvedKeyFrameEntry.cs
- Fonts.cs
- UriTemplateTableMatchCandidate.cs
- RotateTransform.cs
- Attributes.cs
- BitmapEffectGeneralTransform.cs
- LayoutTable.cs
- PngBitmapEncoder.cs
- Choices.cs
- mediaclock.cs
- HttpHandlersInstallComponent.cs
- ZipIOModeEnforcingStream.cs
- AuthorizationRule.cs
- EpmContentDeSerializerBase.cs
- PeerNearMe.cs
- HandlerFactoryWrapper.cs
- TemplateField.cs
- GlyphCache.cs
- AlternateView.cs
- login.cs
- MimeTypePropertyAttribute.cs
- MsdtcClusterUtils.cs
- LicFileLicenseProvider.cs
- InkCanvas.cs
- XmlCharType.cs
- SqlClientMetaDataCollectionNames.cs
- WebHttpBindingCollectionElement.cs
- EventLogPropertySelector.cs
- XmlBoundElement.cs