示例#1
0
        internal override void HandleObsWebServiceRequest(ObsWebServiceRequest req)
        {
            GetObjectRequest request = req as GetObjectRequest;

            if (request != null && request.DownloadProgress != null && this.OutputStream != null && this.ContentLength > 0)
            {
                TransferStream stream = new TransferStream(this.OutputStream);

                TransferStreamManager mgr;
                if (request.ProgressType == ProgressTypeEnum.ByBytes)
                {
                    mgr = new TransferStreamByBytes(request.Sender, request.DownloadProgress,
                                                    this.ContentLength, 0, request.ProgressInterval);
                }
                else
                {
                    mgr = new ThreadSafeTransferStreamBySeconds(request.Sender, request.DownloadProgress,
                                                                this.ContentLength, 0, request.ProgressInterval);
                    stream.CloseStream += mgr.TransferEnd;
                }
                stream.BytesReaded += mgr.BytesTransfered;
                stream.StartRead   += mgr.TransferStart;
                stream.BytesReset  += mgr.TransferReset;
                this.OutputStream   = stream;
            }
        }
        /// <summary>
        /// Constructs a new DefaultRequest with the specified service name and the
        /// original, user facing request object.
        /// </summary>
        /// <param name="request">The orignal request that is being wrapped</param>
        /// <param name="serviceName">The service name</param>
        public DISDefaultRequest(ObsWebServiceRequest request, String serviceName)
        {
            if (request == null)
            {
                throw new ArgumentNullException("request");
            }
            if (string.IsNullOrEmpty(serviceName))
            {
                throw new ArgumentNullException("serviceName");
            }

            this.serviceName     = serviceName;
            this.originalRequest = request;
            this.requestName     = this.originalRequest.GetType().Name;
            this.UseSigV4        = this.originalRequest.UseSigV4;
        }