Class ByteBucketST
java.lang.Object
com.biglybt.core.networkmanager.impl.ByteBucketST
- All Implemented Interfaces:
ByteBucket
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate longprivate intprivate booleanprivate longprivate int -
Constructor Summary
ConstructorsModifierConstructorDescriptionByteBucketST(int rate_bytes_per_sec) Create a new byte-bucket with the given byte fill (guaranteed) rate.privateByteBucketST(int rate_bytes_per_sec, int burst_rate) Create a new byte-bucket with the given byte fill (guaranteed) rate and the given burst rate. -
Method Summary
Modifier and TypeMethodDescriptionprivate voidMake sure the bucket's burst rate is at least MSS-sized, otherwise it will never allow a full packet's worth of data.intGet the number of bytes currently available for use.intGet the configured burst rate.intgetRate()Get the configured fill rate.voidsetBytesUsed(int bytes_used) Update the bucket with the number of bytes just used.voidsetFrozen(boolean f) voidsetRate(int rate_bytes_per_sec) Set the current fill/guaranteed rate, with a burst rate of 1.2X the given rate.voidsetRate(int rate_bytes_per_sec, int burst_rate) Set the current fill/guaranteed rate, along with the burst rate.private void
-
Field Details
-
rate
private int rate -
burst_rate
private int burst_rate -
avail_bytes
private long avail_bytes -
prev_update_time
private long prev_update_time -
frozen
private boolean frozen
-
-
Constructor Details
-
ByteBucketST
public ByteBucketST(int rate_bytes_per_sec) Create a new byte-bucket with the given byte fill (guaranteed) rate. Burst rate is set to default 1.2X of given fill rate.- Parameters:
rate_bytes_per_sec- fill rate
-
ByteBucketST
private ByteBucketST(int rate_bytes_per_sec, int burst_rate) Create a new byte-bucket with the given byte fill (guaranteed) rate and the given burst rate.- Parameters:
rate_bytes_per_sec- fill rateburst_rate- max rate
-
-
Method Details
-
getAvailableByteCount
public int getAvailableByteCount()Get the number of bytes currently available for use.- Specified by:
getAvailableByteCountin interfaceByteBucket- Returns:
- number of free bytes
-
setBytesUsed
public void setBytesUsed(int bytes_used) Update the bucket with the number of bytes just used.- Specified by:
setBytesUsedin interfaceByteBucket- Parameters:
bytes_used-
-
getRate
public int getRate()Get the configured fill rate.- Specified by:
getRatein interfaceByteBucket- Returns:
- guaranteed rate in bytes per sec
-
getBurstRate
public int getBurstRate()Get the configured burst rate.- Returns:
- burst rate in bytes per sec
-
setRate
public void setRate(int rate_bytes_per_sec) Set the current fill/guaranteed rate, with a burst rate of 1.2X the given rate.- Specified by:
setRatein interfaceByteBucket- Parameters:
rate_bytes_per_sec-
-
setRate
public void setRate(int rate_bytes_per_sec, int burst_rate) Set the current fill/guaranteed rate, along with the burst rate.- Parameters:
rate_bytes_per_sec-burst_rate-
-
setFrozen
public void setFrozen(boolean f) - Specified by:
setFrozenin interfaceByteBucket
-
update_avail_byte_count
private void update_avail_byte_count() -
ensureByteBucketMinBurstRate
private void ensureByteBucketMinBurstRate()Make sure the bucket's burst rate is at least MSS-sized, otherwise it will never allow a full packet's worth of data.
-