Esempio n. 1
0
        private void Update(Connections connections)
        {
            var elapsed = DateTime.UtcNow - this.lastPollCompletion;

            this.lastPollCompletion = DateTime.UtcNow;

            if (this.prevConnections != null)
            {
                // Just do the total for now
                var total     = connections.Total;
                var prevTotal = this.prevConnections.Total;

                double inBytesPerSecond  = (total.InBytesTotal - prevTotal.InBytesTotal) / elapsed.TotalSeconds;
                double outBytesPerSecond = (total.OutBytesTotal - prevTotal.OutBytesTotal) / elapsed.TotalSeconds;

                var totalStats = new SyncthingConnectionStats(total.InBytesTotal, total.OutBytesTotal, inBytesPerSecond, outBytesPerSecond);
                this.OnTotalConnectionStatsChanged(totalStats);
            }
            this.prevConnections = connections;
        }
Esempio n. 2
0
        protected override async Task PollAsync(CancellationToken cancellationToken)
        {
            var connections = await this.apiClient.FetchConnectionsAsync(cancellationToken);

            // We can be stopped in the time it takes this to complete
            cancellationToken.ThrowIfCancellationRequested();

            var elapsed = DateTime.UtcNow - this.lastPollCompletion;

            this.lastPollCompletion = DateTime.UtcNow;

            if (this.prevConnections != null)
            {
                // Just do the total for now
                var total     = connections.Total;
                var prevTotal = this.prevConnections.Total;

                if (total.InBytesTotal != prevTotal.InBytesTotal || total.OutBytesTotal != prevTotal.OutBytesTotal)
                {
                    this.haveNotifiedOfNoChange = false;

                    double inBytesPerSecond  = (total.InBytesTotal - prevTotal.InBytesTotal) / elapsed.TotalSeconds;
                    double outBytesPerSecond = (total.OutBytesTotal - prevTotal.OutBytesTotal) / elapsed.TotalSeconds;

                    var totalStats = new SyncthingConnectionStats(total.InBytesTotal, total.OutBytesTotal, inBytesPerSecond, outBytesPerSecond);
                    this.OnTotalConnectionStatsChanged(totalStats);
                }
                else if (!this.haveNotifiedOfNoChange)
                {
                    this.haveNotifiedOfNoChange = true;

                    var totalStats = new SyncthingConnectionStats(total.InBytesTotal, total.OutBytesTotal, 0, 0);
                    this.OnTotalConnectionStatsChanged(totalStats);
                }
            }
            this.prevConnections = connections;
        }
        protected override async Task PollAsync(CancellationToken cancellationToken)
        {
            var connections = await this.apiClient.FetchConnectionsAsync(cancellationToken);

            // We can be stopped in the time it takes this to complete
            cancellationToken.ThrowIfCancellationRequested();
            
            var elapsed = DateTime.UtcNow - this.lastPollCompletion;
            this.lastPollCompletion = DateTime.UtcNow;

            if (this.prevConnections != null)
            {
                // Just do the total for now
                var total = connections.Total;
                var prevTotal = this.prevConnections.Total;

                if (total.InBytesTotal != prevTotal.InBytesTotal || total.OutBytesTotal != prevTotal.OutBytesTotal)
                {
                    this.haveNotifiedOfNoChange = false;

                    double inBytesPerSecond = (total.InBytesTotal - prevTotal.InBytesTotal) / elapsed.TotalSeconds;
                    double outBytesPerSecond = (total.OutBytesTotal - prevTotal.OutBytesTotal) / elapsed.TotalSeconds;

                    var totalStats = new SyncthingConnectionStats(total.InBytesTotal, total.OutBytesTotal, inBytesPerSecond, outBytesPerSecond);
                    this.OnTotalConnectionStatsChanged(totalStats);
                }
                else if (!this.haveNotifiedOfNoChange)
                {
                    this.haveNotifiedOfNoChange = true;

                    var totalStats = new SyncthingConnectionStats(total.InBytesTotal, total.OutBytesTotal, 0, 0);
                    this.OnTotalConnectionStatsChanged(totalStats);
                }
            }
            this.prevConnections = connections;
        }
Esempio n. 4
0
 private void OnTotalConnectionStatsChanged(SyncthingConnectionStats stats)
 {
     this.TotalConnectionStats = stats;
     this.eventDispatcher.Raise(this.TotalConnectionStatsChanged, new ConnectionStatsChangedEventArgs(stats));
 }
Esempio n. 5
0
 private void OnTotalConnectionStatsChanged(SyncthingConnectionStats stats)
 {
     this.TotalConnectionStats = stats;
     this.eventDispatcher.Raise(this.TotalConnectionStatsChanged, new ConnectionStatsChangedEventArgs(stats));
 }
Esempio n. 6
0
 private void OnTotalConnectionStatsChanged(SyncthingConnectionStats connectionStats)
 {
     this.TotalConnectionStatsChanged?.Invoke(this, new ConnectionStatsChangedEventArgs(connectionStats));
 }
Esempio n. 7
0
 public ConnectionStatsChangedEventArgs(SyncthingConnectionStats totalConnectionStats)
 {
     this.TotalConnectionStats = totalConnectionStats;
 }
 private void UpdateConnectionStats(SyncthingConnectionStats connectionStats)
 {
     if (connectionStats == null)
     {
         this.InConnectionRate = "0.0B";
         this.OutConnectionRate = "0.0B";
     }
     else
     {
         this.InConnectionRate = FormatUtils.BytesToHuman(connectionStats.InBytesPerSecond, 1);
         this.OutConnectionRate = FormatUtils.BytesToHuman(connectionStats.OutBytesPerSecond, 1);
     }
 }
 private void OnTotalConnectionStatsChanged(SyncthingConnectionStats connectionStats)
 {
     this.TotalConnectionStatsChanged?.Invoke(this, new ConnectionStatsChangedEventArgs(connectionStats));
 }
 public ConnectionStatsChangedEventArgs(SyncthingConnectionStats totalConnectionStats)
 {
     this.TotalConnectionStats = totalConnectionStats;
 }