private void SessionOnSegmentReceived(object sender, HyperSegmentEventArgs e) { HyperMeta meta; if (_aliveTasks.TryRemove(e.Token, out meta)) { if (meta.SegmentAwaitable == null) { if (meta.FileCheckAwaitable != null) { meta.FileCheckAwaitable.SetResult(-1); } Logger.Error("No awaitable for segment request!"); return; } meta.SegmentAwaitable.SetResult(e.Buffer); SegmentDownloadTime.Update((int)((Stopwatch.GetTimestamp() - meta.Created) / (Stopwatch.Frequency / 1000))); } else { MissedSegmentResponses.Update(1); } }
protected virtual void OnSegmentReceived(HyperSegmentEventArgs e) { SegmentReceived?.Invoke(this, e); }
void connection_SegmentReceived(object sender, HyperSegmentEventArgs e) { OnSegmentReceived(e); }