Beispiel #1
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="manager"></param>
        /// <param name="cacheManager"></param>
        /// <param name="share"></param>
        /// <param name="basePaths">a list of base paths to exclude from full uri</param>
        public HyperRelayReader(HyperDownloadManager manager, UploadCacheManager cacheManager, IShare share, List <string> basePaths)
        {
            _manager                   = manager;
            _cacheManager              = cacheManager;
            _share                     = share;
            _basePaths                 = basePaths;
            _share.TotalSharedChanged += _share_TotalSharedChanged;
            _updateTimer               = new Timer(o => RebuildDictionary(), null, Timeout.Infinite, Timeout.Infinite);

            SegmentService    = new MovingAverage(TimeSpan.FromSeconds(10));
            SegmentsPerSecond = new SpeedAverage(TimeSpan.FromSeconds(10));

            SegmentServiceProxy    = new MovingAverage(TimeSpan.FromSeconds(10));
            SegmentsPerSecondProxy = new SpeedAverage(TimeSpan.FromSeconds(10));

            SegmentServiceCached    = new MovingAverage(TimeSpan.FromSeconds(10));
            SegmentsPerSecondCached = new SpeedAverage(TimeSpan.FromSeconds(10));
        }
 public void RegisterRelayStorage(HyperDownloadManager downloadManager, UploadCacheManager cacheManager, IShare share, List <string> baseList)
 {
     AddStorage(new HyperRelayReader(downloadManager, cacheManager, share, baseList));
     Logger.Info($"Registered relay file storage {string.Join(", ", downloadManager.Sessions().Select(s => s.Server))}");
 }