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; } }