public HttpServerUpgradeHandler(ISourceCodec sourceCodec, IUpgradeCodecFactory upgradeCodecFactory, int maxContentLength)
            : base(maxContentLength)
        {
            Contract.Requires(sourceCodec != null);
            Contract.Requires(upgradeCodecFactory != null);

            this.sourceCodec         = sourceCodec;
            this.upgradeCodecFactory = upgradeCodecFactory;
        }
        /// <summary>
        /// Constructs the upgrader with the supported codecs.
        /// </summary>
        /// <param name="sourceCodec">the codec that is being used initially</param>
        /// <param name="upgradeCodecFactory">the factory that creates a new upgrade codec
        /// for one of the requested upgrade protocols</param>
        /// <param name="maxContentLength">the maximum length of the content of an upgrade request</param>
        public HttpServerUpgradeHandler(ISourceCodec sourceCodec, IUpgradeCodecFactory upgradeCodecFactory, int maxContentLength)
            : base(maxContentLength)
        {
            if (sourceCodec is null)
            {
                ThrowHelper.ThrowArgumentNullException(ExceptionArgument.sourceCodec);
            }
            if (upgradeCodecFactory is null)
            {
                ThrowHelper.ThrowArgumentNullException(ExceptionArgument.upgradeCodecFactory);
            }

            this.sourceCodec         = sourceCodec;
            this.upgradeCodecFactory = upgradeCodecFactory;
        }
 public HttpServerUpgradeHandler(ISourceCodec sourceCodec, IUpgradeCodecFactory upgradeCodecFactory)
     : this(sourceCodec, upgradeCodecFactory, 0)
 {
 }