⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 globalmanagerstatsimpl.java

📁 这是一个基于java编写的torrent的P2P源码
💻 JAVA
字号:
/*
 * File    : GlobalManagerStatsImpl.java
 * Created : 21-Oct-2003
 * By      : stuff
 * 
 * Azureus - a Java Bittorrent client
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation; either version 2 of the License.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details ( see the LICENSE file ).
 *
 * You should have received a copy of the GNU General Public License
 * along with this program; if not, write to the Free Software
 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 */

package org.gudy.azureus2.core3.global.impl;

/**
 * @author parg
 *
 */

import org.gudy.azureus2.core3.config.COConfigurationManager;
import org.gudy.azureus2.core3.global.*;
import org.gudy.azureus2.core3.util.*;


public class 
GlobalManagerStatsImpl
	implements GlobalManagerStats
{
	private GlobalManagerImpl		manager;
	
	private long total_data_bytes_received;
    private long total_protocol_bytes_received;
    
	private long totalDiscarded;
    
    private long total_data_bytes_sent;
    private long total_protocol_bytes_sent;

    private int	data_send_speed_at_close;
    
	private Average data_receive_speed = Average.getInstance(1000, 10);  //average over 10s, update every 1000ms
    private Average protocol_receive_speed = Average.getInstance(1000, 10);  //average over 10s, update every 1000ms

	private Average data_send_speed = Average.getInstance(1000, 10);  //average over 10s, update every 1000ms
    private Average protocol_send_speed = Average.getInstance(1000, 10);  //average over 10s, update every 1000ms
	private Average data_send_speed_no_lan = Average.getInstance(1000, 10);  //average over 10s, update every 1000ms
    private Average protocol_send_speed_no_lan = Average.getInstance(1000, 10);  //average over 10s, update every 1000ms


	protected 
	GlobalManagerStatsImpl(
		GlobalManagerImpl	_manager )
	{
		manager = _manager;
		
		load();
	}
  
	protected void
	load()
	{
		data_send_speed_at_close	= COConfigurationManager.getIntParameter( "globalmanager.stats.send.speed.at.close", 0 );
	}
	
	protected void
	save()
	{
		COConfigurationManager.setParameter( "globalmanager.stats.send.speed.at.close", getDataSendRate());
	}
    
	public int 
	getDataSendRateAtClose()
	{
		return( data_send_speed_at_close );
	}
	
  			// update methods
  			
	  public void discarded(int length) {
	    this.totalDiscarded += length;
	  }

	  public void dataBytesReceived(int length) {
	    total_data_bytes_received += length;
	    data_receive_speed.addValue(length);
	  }
    
    
    public void protocolBytesReceived(int length) {
      total_protocol_bytes_received += length;
      protocol_receive_speed.addValue(length);
    }
    
    

	  public void dataBytesSent(int length, boolean LAN) {
	    total_data_bytes_sent += length;
	    if ( !LAN ){
	    	data_send_speed_no_lan.addValue(length);
	    }
	    data_send_speed.addValue(length);
	  }
    
    
    public void protocolBytesSent(int length, boolean LAN) {
      total_protocol_bytes_sent += length;
      if ( !LAN ){
    	  protocol_send_speed_no_lan.addValue(length);
      }
      protocol_send_speed.addValue(length);
    }
    

 
	  public int getDataReceiveRate() {
	    return (int)data_receive_speed.getAverage();
	  }
    
    public int getProtocolReceiveRate() {
      return (int)protocol_receive_speed.getAverage();
    }
    
    
  
	  public int getDataSendRate() {
		  return (int)data_send_speed.getAverage();
	  }
	  public int getDataSendRateNoLAN() {
		  return (int)data_send_speed_no_lan.getAverage();
	  }
	  public int getProtocolSendRate() {
		  return (int)protocol_send_speed.getAverage();
	  }
	  public int getProtocolSendRateNoLAN() {
		  return (int)protocol_send_speed_no_lan.getAverage();
	  }
    

    
	  public long getTotalDataBytesSent() {
	    return total_data_bytes_sent;
	  }
    
    public long getTotalProtocolBytesSent() {
      return total_protocol_bytes_sent;
    }
    
  
	  public long getTotalDataBytesReceived() {
	    return total_data_bytes_received;
	  }
    
    public long getTotalProtocolBytesReceived() {
      return total_protocol_bytes_received;
    }
    
    
	  public long getTotalDiscardedRaw() {
		  return totalDiscarded;
	  }
	  
	  public long getTotalSwarmsPeerRate(boolean downloading, boolean seeding )
	  {
		  return( manager.getTotalSwarmsPeerRate(downloading,seeding));
	  }

}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -