コード例 #1
0
ファイル: DownloadItem.cs プロジェクト: ErtyHackward/sharpdc
        /// <summary>
        ///
        /// </summary>
        /// <param name="verifySegmentIndex"></param>
        public void SetIncorrect(int verifySegmentIndex)
        {
            var ea = new SegmentVerificationEventArgs
            {
                IsCorrect = false,
                Index     = verifySegmentIndex
            };

            FillVerificationRange(ea);

            lock (_syncRoot)
            {
                foreach (var i in SegmentsVerifyToDownload(verifySegmentIndex))
                {
                    _downloadedSegments.Set(i, false);
                    _doneSegmentsCount--;
                }

                ea.Sources = SegmentsVerifyToDownload(verifySegmentIndex).Select(i => _segmentSources[i]).ToList();
            }

            OnVerificationComplete(ea);

            if (LogSegmentEvents)
            {
                Logger.Info("SEG VERIFICATION FAILED ID:{0}", verifySegmentIndex);
            }
        }
コード例 #2
0
ファイル: DownloadItem.cs プロジェクト: ErtyHackward/sharpdc
        private void FillVerificationRange(SegmentVerificationEventArgs ea)
        {
            long start;
            int  length;

            VerifySegmentToFileRange(ea.Index, out start, out length);
            ea.Start  = start;
            ea.Length = length;
        }
コード例 #3
0
ファイル: DownloadItem.cs プロジェクト: ErtyHackward/sharpdc
        protected virtual void OnVerificationComplete(SegmentVerificationEventArgs e)
        {
            var handler = VerificationComplete;

            if (handler != null)
            {
                handler(this, e);
            }
        }
コード例 #4
0
ファイル: DownloadItem.cs プロジェクト: ErtyHackward/sharpdc
        /// <summary>
        /// Marks verify segment as correct
        /// </summary>
        /// <param name="verifySegmentIndex"></param>
        public void SetCorrect(int verifySegmentIndex)
        {
            var ea = new SegmentVerificationEventArgs
            {
                IsCorrect = true,
                Index     = verifySegmentIndex
            };

            FillVerificationRange(ea);

            lock (_syncRoot)
            {
                _verifiedSegmentsCount++;
                _verifiedSegments.Set(verifySegmentIndex, true);
                ea.Sources = SegmentsVerifyToDownload(verifySegmentIndex).Select(i => _segmentSources[i]).ToList();
            }

            OnVerificationComplete(ea);

            if (LogSegmentEvents)
            {
                Logger.Info("SEG VERIFIED ID:{0}", verifySegmentIndex);
            }
        }