internal ConnectionOrientedTransportChannelFactory(Microsoft.ServiceBus.Channels.ConnectionOrientedTransportBindingElement bindingElement, BindingContext context, string connectionPoolGroupName, TimeSpan idleTimeout, int maxOutboundConnectionsPerEndpoint) : base(bindingElement, context)
        {
            if (bindingElement.TransferMode == System.ServiceModel.TransferMode.Buffered && bindingElement.MaxReceivedMessageSize > (long)2147483647)
            {
                throw Microsoft.ServiceBus.Diagnostics.DiagnosticUtility.ExceptionUtility.ThrowHelperError(new ArgumentOutOfRangeException("bindingElement.MaxReceivedMessageSize", Microsoft.ServiceBus.SR.GetString(Resources.MaxReceivedMessageSizeMustBeInIntegerRange, new object[0])));
            }
            this.connectionBufferSize     = bindingElement.ConnectionBufferSize;
            this.connectionPoolGroupName  = connectionPoolGroupName;
            this.exposeConnectionProperty = bindingElement.ExposeConnectionProperty;
            this.idleTimeout   = idleTimeout;
            this.maxBufferSize = bindingElement.MaxBufferSize;
            this.maxOutboundConnectionsPerEndpoint = maxOutboundConnectionsPerEndpoint;
            this.maxOutputDelay = bindingElement.MaxOutputDelay;
            this.transferMode   = bindingElement.TransferMode;
            Collection <StreamUpgradeBindingElement> streamUpgradeBindingElements = context.BindingParameters.FindAll <StreamUpgradeBindingElement>();

            if (streamUpgradeBindingElements.Count > 1)
            {
                throw Microsoft.ServiceBus.Diagnostics.DiagnosticUtility.ExceptionUtility.ThrowHelperError(new InvalidOperationException(Microsoft.ServiceBus.SR.GetString(Resources.MultipleStreamUpgradeProvidersInParameters, new object[0])));
            }
            if (streamUpgradeBindingElements.Count == 1)
            {
                this.upgrade = streamUpgradeBindingElements[0].BuildClientStreamUpgradeProvider(context);
                context.BindingParameters.Remove <StreamUpgradeBindingElement>();
                this.securityCapabilities = streamUpgradeBindingElements[0].GetProperty <ISecurityCapabilities>(context);
            }
        }
 internal ConnectionOrientedTransportBindingElement(Microsoft.ServiceBus.Channels.ConnectionOrientedTransportBindingElement elementToBeCloned) : base(elementToBeCloned)
 {
     this.connectionBufferSize         = elementToBeCloned.connectionBufferSize;
     this.exposeConnectionProperty     = elementToBeCloned.exposeConnectionProperty;
     this.hostNameComparisonMode       = elementToBeCloned.hostNameComparisonMode;
     this.inheritBaseAddressSettings   = elementToBeCloned.InheritBaseAddressSettings;
     this.channelInitializationTimeout = elementToBeCloned.ChannelInitializationTimeout;
     this.maxBufferSize            = elementToBeCloned.maxBufferSize;
     this.maxBufferSizeInitialized = elementToBeCloned.maxBufferSizeInitialized;
     this.maxPendingConnections    = elementToBeCloned.maxPendingConnections;
     this.maxOutputDelay           = elementToBeCloned.maxOutputDelay;
     this.maxPendingAccepts        = elementToBeCloned.maxPendingAccepts;
     this.transferMode             = elementToBeCloned.transferMode;
 }
        protected ConnectionOrientedTransportChannelListener(Microsoft.ServiceBus.Channels.ConnectionOrientedTransportBindingElement bindingElement, BindingContext context) : base(bindingElement, context, bindingElement.HostNameComparisonMode)
        {
            if (bindingElement.TransferMode == System.ServiceModel.TransferMode.Buffered)
            {
                if (bindingElement.MaxReceivedMessageSize > (long)2147483647)
                {
                    throw Microsoft.ServiceBus.Diagnostics.DiagnosticUtility.ExceptionUtility.ThrowHelperError(new ArgumentOutOfRangeException("bindingElement.MaxReceivedMessageSize", Microsoft.ServiceBus.SR.GetString(Resources.MaxReceivedMessageSizeMustBeInIntegerRange, new object[0])));
                }
                if ((long)bindingElement.MaxBufferSize != bindingElement.MaxReceivedMessageSize)
                {
                    throw Microsoft.ServiceBus.Diagnostics.DiagnosticUtility.ExceptionUtility.ThrowHelperArgument("bindingElement", Microsoft.ServiceBus.SR.GetString(Resources.MaxBufferSizeMustMatchMaxReceivedMessageSize, new object[0]));
                }
            }
            else if ((long)bindingElement.MaxBufferSize > bindingElement.MaxReceivedMessageSize)
            {
                throw Microsoft.ServiceBus.Diagnostics.DiagnosticUtility.ExceptionUtility.ThrowHelperArgument("bindingElement", Microsoft.ServiceBus.SR.GetString(Resources.MaxBufferSizeMustNotExceedMaxReceivedMessageSize, new object[0]));
            }
            this.connectionBufferSize         = bindingElement.ConnectionBufferSize;
            this.exposeConnectionProperty     = bindingElement.ExposeConnectionProperty;
            base.InheritBaseAddressSettings   = bindingElement.InheritBaseAddressSettings;
            this.channelInitializationTimeout = bindingElement.ChannelInitializationTimeout;
            this.maxBufferSize         = bindingElement.MaxBufferSize;
            this.maxPendingConnections = bindingElement.MaxPendingConnections;
            this.maxOutputDelay        = bindingElement.MaxOutputDelay;
            this.maxPendingAccepts     = bindingElement.MaxPendingAccepts;
            this.transferMode          = bindingElement.TransferMode;
            Collection <StreamUpgradeBindingElement> streamUpgradeBindingElements = context.BindingParameters.FindAll <StreamUpgradeBindingElement>();

            if (streamUpgradeBindingElements.Count > 1)
            {
                throw Microsoft.ServiceBus.Diagnostics.DiagnosticUtility.ExceptionUtility.ThrowHelperError(new InvalidOperationException(Microsoft.ServiceBus.SR.GetString(Resources.MultipleStreamUpgradeProvidersInParameters, new object[0])));
            }
            if (streamUpgradeBindingElements.Count == 1)
            {
                this.upgrade    = streamUpgradeBindingElements[0].BuildServerStreamUpgradeProvider(context);
                this.ownUpgrade = true;
                context.BindingParameters.Remove <StreamUpgradeBindingElement>();
                this.securityCapabilities = streamUpgradeBindingElements[0].GetProperty <ISecurityCapabilities>(context);
            }
        }
        internal virtual new bool IsMatch(BindingElement b)
        {
            if (b == null)
            {
                return(false);
            }
            TransportBindingElement transportBindingElement = b as TransportBindingElement;

            if (transportBindingElement == null)
            {
                return(false);
            }
            if (this.MaxBufferPoolSize != transportBindingElement.MaxBufferPoolSize)
            {
                return(false);
            }
            if (this.MaxReceivedMessageSize != transportBindingElement.MaxReceivedMessageSize)
            {
                return(false);
            }
            Microsoft.ServiceBus.Channels.ConnectionOrientedTransportBindingElement connectionOrientedTransportBindingElement = b as Microsoft.ServiceBus.Channels.ConnectionOrientedTransportBindingElement;
            if (connectionOrientedTransportBindingElement == null)
            {
                return(false);
            }
            if (this.connectionBufferSize != connectionOrientedTransportBindingElement.connectionBufferSize)
            {
                return(false);
            }
            if (this.hostNameComparisonMode != connectionOrientedTransportBindingElement.hostNameComparisonMode)
            {
                return(false);
            }
            if (this.inheritBaseAddressSettings != connectionOrientedTransportBindingElement.inheritBaseAddressSettings)
            {
                return(false);
            }
            if (this.channelInitializationTimeout != connectionOrientedTransportBindingElement.channelInitializationTimeout)
            {
                return(false);
            }
            if (this.maxBufferSize != connectionOrientedTransportBindingElement.maxBufferSize)
            {
                return(false);
            }
            if (this.maxPendingConnections != connectionOrientedTransportBindingElement.maxPendingConnections)
            {
                return(false);
            }
            if (this.maxOutputDelay != connectionOrientedTransportBindingElement.maxOutputDelay)
            {
                return(false);
            }
            if (this.maxPendingAccepts != connectionOrientedTransportBindingElement.maxPendingAccepts)
            {
                return(false);
            }
            if (this.transferMode != connectionOrientedTransportBindingElement.transferMode)
            {
                return(false);
            }
            return(true);
        }