Class WriteController

java.lang.Object
com.biglybt.core.networkmanager.impl.WriteController
All Implemented Interfaces:
CoreStatsProvider, AEDiagnosticsEvidenceGenerator

public class WriteController extends Object implements CoreStatsProvider, AEDiagnosticsEvidenceGenerator
Processes writes of write-entities and handles the write selector.
  • Field Details

    • IDLE_SLEEP_TIME

      static int IDLE_SLEEP_TIME
    • AGGRESIVE_WRITE

      static boolean AGGRESIVE_WRITE
    • BOOSTER_GIFT

      static int BOOSTER_GIFT
    • normal_priority_entities

      volatile ArrayList<RateControlledEntity> normal_priority_entities
    • boosted_priority_entities

      volatile ArrayList<RateControlledEntity> boosted_priority_entities
    • high_priority_entities

      volatile 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
  • Constructor Details

    • WriteController

      public WriteController()
      Create a new write controller.
  • Method Details

    • getBiasDetails

      public String getBiasDetails()
    • generate

      public void generate(IndentWriter writer)
      Specified by:
      generate in interface AEDiagnosticsEvidenceGenerator
    • updateStats

      public void updateStats(Set types, Map values)
      Specified by:
      updateStats in interface CoreStatsProvider
    • 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()