private void BoundaryWaiterMeetGuard(object sender, EventArgs e)
 {
     var sw = sender as EntityBodyChunkStateWaiter;
     sw.Reset();
     _current = _boundaryInfoWaiter;
     _current.Wait(sw);
 }
Beispiel #2
0
        private void BoundaryWaiterMeetGuard(object sender, EventArgs e)
        {
            var sw = sender as EntityBodyChunkStateWaiter;

            sw.Reset();
            _current = _boundaryInfoWaiter;
            _current.Wait(sw);
        }
Beispiel #3
0
        private void FormValueWaiterMeetGuard(object sender, EventArgs e)
        {
            var sw = sender as EntityBodyChunkStateWaiter;

            var fieldValue = sw.Value;

            _statistic.AddFormField(_lastCdName, fieldValue);

            sw.Reset();

            _current = _boundaryWaiter;
            _current.Wait();
        }
Beispiel #4
0
        private void BoundaryInfoWaiterMeetGuard(object sender, EventArgs e)
        {
            var sw  = sender as EntityBodyChunkStateWaiter;
            var cdi = UploadProgressUtils.GetContentDisposition(sw.Value);

            sw.Reset();
            if (!cdi.IsFile)
            {
                _lastCdName = cdi.name;
                _current    = _formValueWaiter;
                _current.Wait(sw);
            }
            else
            {
                _statistic.BeginFileUpload(cdi.filename);
                _current = _boundaryWaiter;
                _current.Wait(sw);
            }
        }
        internal EntityBodyInspector(HttpUploadWorkerRequest request)
        {
            _statistic = new UploadProgressStatistic
                {
                    TotalBytes = request.GetTotalEntityBodyLength()
                };

            var contentType = request.GetKnownRequestHeader(HttpWorkerRequest.HeaderContentType);

            var boundary = string.Format("--{0}\r\n", UploadProgressUtils.GetBoundary(contentType));

            _boundaryWaiter = new EntityBodyChunkStateWaiter(boundary, false);
            _boundaryWaiter.MeetGuard += BoundaryWaiterMeetGuard;
            _current = _boundaryWaiter;

            _boundaryInfoWaiter = new EntityBodyChunkStateWaiter("\r\n\r\n", true);
            _boundaryInfoWaiter.MeetGuard += BoundaryInfoWaiterMeetGuard;

            _formValueWaiter = new EntityBodyChunkStateWaiter("\r\n", true);
            _formValueWaiter.MeetGuard += FormValueWaiterMeetGuard;

            _lastCdName = string.Empty;
        }
Beispiel #6
0
        internal EntityBodyInspector(HttpUploadWorkerRequest request)
        {
            _statistic = new UploadProgressStatistic
            {
                TotalBytes = request.GetTotalEntityBodyLength()
            };

            var contentType = request.GetKnownRequestHeader(HttpWorkerRequest.HeaderContentType);

            var boundary = string.Format("--{0}\r\n", UploadProgressUtils.GetBoundary(contentType));

            _boundaryWaiter            = new EntityBodyChunkStateWaiter(boundary, false);
            _boundaryWaiter.MeetGuard += BoundaryWaiterMeetGuard;
            _current = _boundaryWaiter;

            _boundaryInfoWaiter            = new EntityBodyChunkStateWaiter("\r\n\r\n", true);
            _boundaryInfoWaiter.MeetGuard += BoundaryInfoWaiterMeetGuard;

            _formValueWaiter            = new EntityBodyChunkStateWaiter("\r\n", true);
            _formValueWaiter.MeetGuard += FormValueWaiterMeetGuard;

            _lastCdName = string.Empty;
        }
 internal void Wait(EntityBodyChunkStateWaiter waiter)
 {
     _reader = waiter._reader;
     Wait();
 }
 internal void Wait(EntityBodyChunkStateWaiter waiter)
 {
     _reader = waiter._reader;
     Wait();
 }
 private void BoundaryInfoWaiterMeetGuard(object sender, EventArgs e)
 {
     var sw = sender as EntityBodyChunkStateWaiter;
     var cdi = UploadProgressUtils.GetContentDisposition(sw.Value);
     sw.Reset();
     if (!cdi.IsFile)
     {
         _lastCdName = cdi.name;
         _current = _formValueWaiter;
         _current.Wait(sw);
     }
     else
     {
         _statistic.BeginFileUpload(cdi.filename);
         _current = _boundaryWaiter;
         _current.Wait(sw);
     }
 }
        private void FormValueWaiterMeetGuard(object sender, EventArgs e)
        {
            var sw = sender as EntityBodyChunkStateWaiter;

            var fieldValue = sw.Value;
            _statistic.AddFormField(_lastCdName, fieldValue);

            sw.Reset();

            _current = _boundaryWaiter;
            _current.Wait();
        }