Exemple #1
0
 private void dispatcherTimer_Tick(object sender, System.Timers.ElapsedEventArgs e)
 {
     if (_torrentSession.alerts_empty())
     {
         _torrentSession.post_torrent_updates();
         _torrentSession.post_dht_stats();
     }
     if (IsTsunamiEnabled)
     {
         using (Core.SessionStatus ss = _torrentSession.status())
         {
             SessionStatistic.Update(ss);
         }
     }
 }
        public void Update(Core.SessionStatus ss)
        {
            //AllowedUploadSlots = ss.allowed_upload_slots;
            //DhtDownloadRate = ss.dht_download_rate;
            //DhtGlobalNodes = ss.dht_global_nodes;
            //DhtNodes = ss.dht_nodes;
            //DhtNodeCache = ss.dht_node_cache;
            //DhtTorrents = ss.dht_torrents;
            //DhtTotalAllocations = ss.dht_total_allocations;
            //DhtUploadRate = ss.dht_upload_rate;
            //DiskReadQueue = ss.disk_read_queue;
            //DiskWriteQueue = ss.disk_write_queue;
            DownloadRate = ss.download_rate;
            //DownBandwidthBytesQueue = ss.down_bandwidth_bytes_queue;
            //DownBandwidthQueue = ss.down_bandwidth_queue;
            //HasIncomingConnections = ss.has_incoming_connections;
            //IpOverheadDownloadRate = ss.ip_overhead_download_rate;
            //IpOverheadUploadRate = ss.ip_overhead_upload_rate;
            NumPeers = ss.num_peers;
            //NumUnchoked = ss.num_unchoked;
            //OptimisticUnchokeCounter = ss.optimistic_unchoke_counter;
            //PayloadDownloadRate = ss.payload_download_rate;
            //PayloadUploadRate = ss.payload_upload_rate;
            //PeerlistSize = ss.peerlist_size;
            //TotalDhtDownload = ss.total_dht_download;
            //TotalDhtUpload = ss.total_dht_upload;
            TotalDownload = ss.total_download;
            //TotalFailedBytes = ss.total_failed_bytes;
            //TotalIpOverheadDownload = ss.total_ip_overhead_download;
            //TotalIpOverheadUpload = ss.total_ip_overhead_upload;
            //TotalPayloadDownload = ss.total_payload_download;
            //TotalPayloadUpload = ss.total_payload_upload;
            //TotalRedundantBytes = ss.total_redundant_bytes;
            //TotalTrackerDownload = ss.total_tracker_download;
            //TotalTrackerUpload = ss.total_tracker_upload;
            TotalUpload = ss.total_upload;
            //TrackerDownloadRate = ss.tracker_download_rate;
            //TrackerUploadRate = ss.tracker_upload_rate;
            //UnchokeCounter = ss.unchoke_counter;
            UploadRate = ss.upload_rate;
            //UpBandwidthBytesQueue = ss.up_bandwidth_bytes_queue;
            //UpBandwidthQueue = ss.up_bandwidth_queue;
            MaxDownloadRate   = ss.download_rate;
            AngularGaugeValue = (ss.download_rate.Megabytes().Megabytes / Math.Pow(10, 6)) * 8;

            var now = DateTime.Now;

            if ((now - LastUpdate).Seconds > 5)
            {
                DownloadChartValues.Add(new MeasureModel
                {
                    DateTime = now,
                    Value    = DownloadRate
                });

                UploadChartValues.Add(new MeasureModel
                {
                    DateTime = now,
                    Value    = UploadRate
                });

                SetAxisLimits(now);

                //lets only use the last 360 values
                if (DownloadChartValues.Count > 361)
                {
                    DownloadChartValues.RemoveAt(0);
                }
                if (UploadChartValues.Count > 361)
                {
                    UploadChartValues.RemoveAt(0);
                }

                DownloadXAxisMin = DownloadChartValues.Last().DateTime.Ticks - TimeSpan.FromMinutes(30).Ticks;
                UploadXAxisMin   = UploadChartValues.Last().DateTime.Ticks - TimeSpan.FromMinutes(30).Ticks;

                LastUpdate = now;
            }
        }