/// <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); } }
private void FillVerificationRange(SegmentVerificationEventArgs ea) { long start; int length; VerifySegmentToFileRange(ea.Index, out start, out length); ea.Start = start; ea.Length = length; }
protected virtual void OnVerificationComplete(SegmentVerificationEventArgs e) { var handler = VerificationComplete; if (handler != null) { handler(this, e); } }
/// <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); } }