Class ByteBucketST
java.lang.Object
com.biglybt.core.networkmanager.impl.ByteBucketST
- All Implemented Interfaces:
ByteBucket
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate long
private int
private boolean
private long
private int
-
Constructor Summary
ConstructorsModifierConstructorDescriptionByteBucketST
(int rate_bytes_per_sec) Create a new byte-bucket with the given byte fill (guaranteed) rate.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. -
Method Summary
Modifier and TypeMethodDescriptionprivate void
Make sure the bucket's burst rate is at least MSS-sized, otherwise it will never allow a full packet's worth of data.int
Get the number of bytes currently available for use.int
Get the configured burst rate.int
getRate()
Get the configured fill rate.void
setBytesUsed
(int bytes_used) Update the bucket with the number of bytes just used.void
setFrozen
(boolean f) void
setRate
(int rate_bytes_per_sec) Set the current fill/guaranteed rate, with a burst rate of 1.2X the given rate.void
setRate
(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:
getAvailableByteCount
in 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:
setBytesUsed
in interfaceByteBucket
- Parameters:
bytes_used
-
-
getRate
public int getRate()Get the configured fill rate.- Specified by:
getRate
in 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:
setRate
in 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:
setFrozen
in 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.
-