Class ByteBucketST
- java.lang.Object
-
- com.biglybt.core.networkmanager.impl.ByteBucketST
-
- All Implemented Interfaces:
ByteBucket
public class ByteBucketST extends java.lang.Object implements ByteBucket
-
-
Field Summary
Fields Modifier and Type Field Description private long
avail_bytes
private int
burst_rate
private boolean
frozen
private long
prev_update_time
private int
rate
-
Constructor Summary
Constructors Modifier Constructor Description ByteBucketST(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
All Methods Instance Methods Concrete Methods Modifier and Type Method Description 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.int
getAvailableByteCount()
Get the number of bytes currently available for use.int
getBurstRate()
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
update_avail_byte_count()
-
-
-
Constructor Detail
-
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 Detail
-
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.
-
-