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);
            }
        }
Example #2
0
 protected virtual void OnSegmentReceived(HyperSegmentEventArgs e)
 {
     SegmentReceived?.Invoke(this, e);
 }
Example #3
0
 void connection_SegmentReceived(object sender, HyperSegmentEventArgs e)
 {
     OnSegmentReceived(e);
 }