package org.limewire.core.settings;
import org.limewire.setting.BooleanSetting;
import org.limewire.setting.FloatSetting;
import org.limewire.setting.IntSetting;
/**
* Settings for uploads.
*/
public final class UploadSettings extends LimeProps {
private UploadSettings() {}
/**
* The maximum number of pushes to allow from a single host
* within a 30 second span.
*/
public static final IntSetting MAX_PUSHES_PER_HOST =
FACTORY.createIntSetting("MAX_PUSHES_PER_HOST", 5);
/**
* Boolean setting indicating whether the max upload speed should be limited using the MAX_UPLOAD_SPEED setting.
*/
public static final BooleanSetting LIMIT_MAX_UPLOAD_SPEED = FACTORY.createBooleanSetting("LIMIT_MAX_UPLOAD_SPEED", false);
/**
* Setting for the number of bytes/second to allow for all uploads.
*
* Minimum of 10 KB/sec
*/
public static final IntSetting MAX_UPLOAD_SPEED =
FACTORY.createIntSetting("MAX_UPLOAD_SPEED", SpeedConstants.CABLE_SPEED_INT/8 * 1024, 10 * 1024, Integer.MAX_VALUE);
/**
* Setting for the size of the upload queue.
*/
public static final IntSetting UPLOAD_QUEUE_SIZE =
FACTORY.createIntSetting("UPLOAD_QUEUE_SIZE", 10);
/**
* Setting for the number of uploads per person.
*/
public static final IntSetting UPLOADS_PER_PERSON =
FACTORY.createIntSetting("UPLOADS_PER_PERSON_2", 3);
/**
* The maximum number of upstream kilobytes per second ever passed by
* this node.
*/
public static final IntSetting MAX_MEASURED_UPLOAD_KBPS =
FACTORY.createExpirableIntSetting("MAX_UPLOAD_BYTES_PER_SEC", 0);
/**
* The maximum number of simultaneous uploads to allow.
*/
public static final IntSetting HARD_MAX_UPLOADS =
FACTORY.createIntSetting("HARD_MAX_UPLOADS", 20);
/**
* The "soft" maximum number of simultaneous uploads to allow,
* i.e., the minimum number of people to allow before determining
* whether to allow more uploads.
*/
public static final IntSetting SOFT_MAX_UPLOADS =
FACTORY.createIntSetting("SOFT_MAXIMUM_UPLOADS_2", 5);
/**
* Settings whether to expire the different types of meshes.
*/
public static final BooleanSetting EXPIRE_LEGACY =
FACTORY.createRemoteBooleanSetting("EXPIRE_LEGACY",true);
public static final BooleanSetting EXPIRE_PING =
FACTORY.createRemoteBooleanSetting("EXPIRE_PING",true);
public static final BooleanSetting EXPIRE_RESPONSE =
FACTORY.createRemoteBooleanSetting("EXPIRE_RESPONSES",true);
/**
* Settings for the number of times each altloc should be given out
* (larger == more times).
*/
public static final FloatSetting LEGACY_BIAS =
FACTORY.createRemoteFloatSetting("LEGACY_BIAS",1f);
public static final FloatSetting PING_BIAS =
FACTORY.createRemoteFloatSetting("PING_BIAS",1f);
public static final FloatSetting RESPONSE_BIAS = // send altlocs in responses more often by default
FACTORY.createRemoteFloatSetting("RESPONSE_BIAS",3f);
/**
* Settings for the speed at which the number of times an altloc can be given out regrows
* (smaller == faster).
*/
public static final FloatSetting LEGACY_EXPIRATION_DAMPER =
FACTORY.createRemoteFloatSetting("LEGACY_DAMPER",
(float)Math.E/2);
public static final FloatSetting PING_EXPIRATION_DAMPER =
FACTORY.createRemoteFloatSetting("PING_DAMPER",
(float)Math.E/2);
public static final FloatSetting RESPONSE_EXPIRATION_DAMPER =
FACTORY.createRemoteFloatSetting("RESPONSE_DAMPER",
(float)Math.E/2);
/**
* How much to throttle the Thex upload speed.
*/
public static final IntSetting THEX_UPLOAD_SPEED =
FACTORY.createRemoteIntSetting("THEX_UPLOAD_SPEED",512);
public static final BooleanSetting CHECK_DUPES =
FACTORY.createBooleanSetting("CHECK_DUPE_UPLOADS", true);
/**
* Indicator that determines whether the Uploads should be displayed in the tray.
*/
public static final BooleanSetting SHOW_UPLOADS_IN_TRAY =
FACTORY.createBooleanSetting("SHOW_UPLOADS_IN_TRAY", false);
}