Class WriteController
- java.lang.Object
-
- com.biglybt.core.networkmanager.impl.WriteController
-
- All Implemented Interfaces:
CoreStatsProvider
,AEDiagnosticsEvidenceGenerator
public class WriteController extends java.lang.Object implements CoreStatsProvider, AEDiagnosticsEvidenceGenerator
Processes writes of write-entities and handles the write selector.
-
-
Field Summary
-
Constructor Summary
Constructors Constructor Description WriteController()
Create a new write controller.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
addWriteEntity(RateControlledEntity entity)
Add the given entity to the controller for write processing.private boolean
doHighPriorityWrite()
private boolean
doNormalPriorityWrite(int tick_count)
void
generate(IndentWriter writer)
java.lang.String
getBiasDetails()
int
getEntityCount()
private RateControlledEntity
getNextReadyHighPriorityEntity()
private boolean
hasConnections()
private int
processNextReadyNormalPriorityEntity(int tick_count)
boolean
removeWriteEntity(RateControlledEntity entity)
Remove the given entity from the controller.void
updateStats(java.util.Set types, java.util.Map values)
(package private) void
writeProcessorLoop()
-
-
-
Field Detail
-
IDLE_SLEEP_TIME
static int IDLE_SLEEP_TIME
-
AGGRESIVE_WRITE
static boolean AGGRESIVE_WRITE
-
BOOSTER_GIFT
static int BOOSTER_GIFT
-
normal_priority_entities
volatile java.util.ArrayList<RateControlledEntity> normal_priority_entities
-
boosted_priority_entities
volatile java.util.ArrayList<RateControlledEntity> boosted_priority_entities
-
high_priority_entities
volatile java.util.ArrayList<RateControlledEntity> high_priority_entities
-
entities_mon
private final AEMonitor entities_mon
-
next_normal_position
private int next_normal_position
-
next_boost_position
private int next_boost_position
-
next_high_position
private int next_high_position
-
booster_process_time
private long booster_process_time
-
booster_normal_written
private int booster_normal_written
-
booster_boost_written
private int booster_boost_written
-
booster_stat_index
private int booster_stat_index
-
booster_normal_writes
private final int[] booster_normal_writes
-
booster_gifts
private final int[] booster_gifts
-
booster_boost_average
private MovingImmediateAverage booster_boost_average
-
booster_normal_average
private MovingImmediateAverage booster_normal_average
-
booster_boost_avail_average
private MovingImmediateAverage booster_boost_avail_average
-
booster_normal_avail_average
private MovingImmediateAverage booster_normal_avail_average
-
booster_boost_data_average
private MovingImmediateAverage booster_boost_data_average
-
booster_normal_data_average
private MovingImmediateAverage booster_normal_data_average
-
aggressive_np_normal_priority_count
private int aggressive_np_normal_priority_count
-
aggressive_np_high_priority_count
private int aggressive_np_high_priority_count
-
process_loop_time
private long process_loop_time
-
wait_count
private long wait_count
-
progress_count
private long progress_count
-
non_progress_count
private long non_progress_count
-
write_waiter
private final EventWaiter write_waiter
-
net_man
private NetworkManager net_man
-
entity_count
private int entity_count
-
-
Method Detail
-
getBiasDetails
public java.lang.String getBiasDetails()
-
generate
public void generate(IndentWriter writer)
- Specified by:
generate
in interfaceAEDiagnosticsEvidenceGenerator
-
updateStats
public void updateStats(java.util.Set types, java.util.Map values)
- Specified by:
updateStats
in interfaceCoreStatsProvider
-
writeProcessorLoop
void writeProcessorLoop()
-
hasConnections
private boolean hasConnections()
-
doNormalPriorityWrite
private boolean doNormalPriorityWrite(int tick_count)
-
doHighPriorityWrite
private boolean doHighPriorityWrite()
-
processNextReadyNormalPriorityEntity
private int processNextReadyNormalPriorityEntity(int tick_count)
-
getNextReadyHighPriorityEntity
private RateControlledEntity getNextReadyHighPriorityEntity()
-
addWriteEntity
public void addWriteEntity(RateControlledEntity entity)
Add the given entity to the controller for write processing.- Parameters:
entity
- to process writes for
-
removeWriteEntity
public boolean removeWriteEntity(RateControlledEntity entity)
Remove the given entity from the controller.- Parameters:
entity
- to remove from write processing
-
getEntityCount
public int getEntityCount()
-
-