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; }