FileDocCategorySizeDatePackage
SMConst.javaAPI DocAzureus 3.0.3.44455Tue Jul 24 19:57:38 BST 2007com.aelitis.azureus.core.speedmanager.impl.v2

SMConst

public class SMConst extends Object
Created on Jul 18, 2007 Created by Alan Snyder Copyright (C) 2007 Aelitis, All Rights Reserved.

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, or (at your option) any later version. 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. 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.

AELITIS, SAS au capital de 63.529,40 euros 8 Allee Lenotre, La Grille Royale, 78600 Le Mesnil le Roi, France.

Fields Summary
public static final int
START_DOWNLOAD_RATE_MAX
public static final int
START_UPLOAD_RATE_MAX
public static final int
MIN_UPLOAD_BYTES_PER_SEC
public static final int
MIN_DOWNLOAD_BYTES_PER_SEC
public static final int
RATE_UNLIMITED
Constructors Summary
private SMConst()

Methods Summary
public static intcalculateMinDownload(int maxBytesPerSec)

        int min = maxBytesPerSec/10;
        return checkForMinDownloadValue( min );
    
public static intcalculateMinUpload(int maxBytesPerSec)
Rule: Min value is alway 10% of max, but not below 5k.

param
maxBytesPerSec -
return
- minRate.


        int min = maxBytesPerSec/10;
        return checkForMinUploadValue( min );
    
public static intcheckForMinDownloadValue(int rateBytesPerSec)

        if( rateBytesPerSec < MIN_DOWNLOAD_BYTES_PER_SEC ){
            return MIN_DOWNLOAD_BYTES_PER_SEC;
        }
        return rateBytesPerSec;
    
public static intcheckForMinUploadValue(int rateBytesPerSec)
No limit should go below 5k bytes/sec.

param
rateBytesPerSec -
return
- "bytes/sec" rate.



                       
        

        if( rateBytesPerSec < MIN_UPLOAD_BYTES_PER_SEC ){
            return MIN_UPLOAD_BYTES_PER_SEC;
        }
        return rateBytesPerSec;        
    
public static com.aelitis.azureus.core.speedmanager.SpeedManagerLimitEstimatefilterEstimate(com.aelitis.azureus.core.speedmanager.SpeedManagerLimitEstimate estimate, int startValue)
Early in the search process the ping-mapper can give estimates that are too low due to a lack of information. The starting upload and download limits is 60K/30K should not go below the starting value a slow DSL lines should.

param
estimate - download rate estimate.
param
startValue - starting upload/download value.
return
-



        int estBytesPerSec = filterLimit(estimate.getBytesPerSec(), startValue);

        return new FilteredLimitEstimate(estBytesPerSec,
                                        estimate.getEstimateType(),
                                        estimate.getMetricRating(),
                                        estimate.getString() );

    
public static intfilterLimit(int bytesPerSec, int startValue)

        int retVal = Math.max(bytesPerSec, startValue);

        // Zero is unlimited. Don't filter that value.
        if( bytesPerSec==0 ){
            return bytesPerSec;
        }

        return retVal;