Class SpeedLimitHandler

    • Field Detail

      • RL_TO_BE_REMOVED_LOCK

        private static final java.lang.Object RL_TO_BE_REMOVED_LOCK
      • RLD_TO_BE_REMOVED_KEY

        private static final java.lang.Object RLD_TO_BE_REMOVED_KEY
      • RLU_TO_BE_REMOVED_KEY

        private static final java.lang.Object RLU_TO_BE_REMOVED_KEY
      • PEER_LT_WAIT_START_KEY

        private static final java.lang.Object PEER_LT_WAIT_START_KEY
      • PEER_ASN_WAIT_START_KEY

        private static final java.lang.Object PEER_ASN_WAIT_START_KEY
      • NETLIMIT_TAG_LOG_PERIOD

        private static final int NETLIMIT_TAG_LOG_PERIOD
        See Also:
        Constant Field Values
      • NETLIMIT_TAG_LOG_TICKS

        private static final int NETLIMIT_TAG_LOG_TICKS
        See Also:
        Constant Field Values
      • PRIORITISER_CHECK_PERIOD_BASE

        private static final int PRIORITISER_CHECK_PERIOD_BASE
        See Also:
        Constant Field Values
      • core

        final Core core
      • is_enabled

        private boolean is_enabled
      • preserve_inactive_limits

        private boolean preserve_inactive_limits
      • prioritiser_enabled

        private boolean prioritiser_enabled
      • ip_set_rate_limiters_up

        private final java.util.Map<java.lang.String,​RateLimiter> ip_set_rate_limiters_up
      • ip_set_rate_limiters_down

        private final java.util.Map<java.lang.String,​RateLimiter> ip_set_rate_limiters_down
      • net_limit_listener_added

        private boolean net_limit_listener_added
      • INACTIVE_PROFILE_NAME

        private static final java.lang.String INACTIVE_PROFILE_NAME
        See Also:
        Constant Field Values
      • predefined_profile_names

        private final java.util.List<java.lang.String> predefined_profile_names
      • rule_pause_all_active

        private boolean rule_pause_all_active
      • net_limit_pause_all_active

        private boolean net_limit_pause_all_active
      • extensions_lock

        private final java.lang.Object extensions_lock
      • auto_peer_set_queue_client

        private final java.util.List<java.lang.String> auto_peer_set_queue_client
      • auto_peer_set_queue_intf

        private final java.util.List<java.lang.String> auto_peer_set_queue_intf
      • buddy_plugin

        private volatile BuddyPlugin buddy_plugin
      • ip_set_peer_key

        private static final java.lang.Object ip_set_peer_key
    • Constructor Detail

      • SpeedLimitHandler

        private SpeedLimitHandler​(Core _core)
    • Method Detail

      • getActiveState

        private int getActiveState()
      • setActiveState

        private void setActiveState​(int state)
      • hasAnyProfiles

        public boolean hasAnyProfiles()
      • loadConfig

        private java.util.Map loadConfig()
      • saveConfig

        private void saveConfig​(java.util.Map map)
      • loadPauseAllActive

        private void loadPauseAllActive()
      • getBuddyPlugin

        private BuddyPlugin getBuddyPlugin()
      • setRulePauseAllActive

        private void setRulePauseAllActive​(boolean active)
      • setNetLimitPauseAllActive

        private void setNetLimitPauseAllActive​(boolean active)
      • clearCurrentLimits

        public java.util.List<java.lang.String> clearCurrentLimits()
      • resetRules

        private java.util.List<java.lang.String> resetRules()
      • getCurrent

        public java.util.List<java.lang.String> getCurrent()
      • getString

        private java.lang.String getString​(long[] stats,
                                           long[] limits,
                                           boolean is_rate)
      • getProfileNames

        public java.util.List<java.lang.String> getProfileNames()
      • loadProfile

        public java.util.List<java.lang.String> loadProfile​(java.lang.String name)
      • profileExists

        private boolean profileExists​(java.lang.String name)
      • getProfile

        public java.util.List<java.lang.String> getProfile​(java.lang.String name)
      • getProfileSupport

        public java.util.List<java.lang.String> getProfileSupport​(java.lang.String name,
                                                                  boolean use_hashes)
      • getProfilesForDownload

        public java.util.List<java.lang.String> getProfilesForDownload​(byte[] hash)
      • addRemoveDownloadsToProfile

        private void addRemoveDownloadsToProfile​(java.lang.String name,
                                                 java.util.List<byte[]> hashes,
                                                 boolean add)
      • addDownloadsToProfile

        public void addDownloadsToProfile​(java.lang.String name,
                                          java.util.List<byte[]> hashes)
      • removeDownloadsFromProfile

        public void removeDownloadsFromProfile​(java.lang.String name,
                                               java.util.List<byte[]> hashes)
      • deleteProfile

        public void deleteProfile​(java.lang.String name)
      • saveProfile

        public java.util.List<java.lang.String> saveProfile​(java.lang.String name)
      • loadSchedule

        private java.util.List<java.lang.String> loadSchedule​(boolean start_of_day)
      • parseRate

        private long parseRate​(java.lang.String str)
      • isEnabled

        public boolean isEnabled()
      • addConfigLine

        public void addConfigLine​(java.lang.String line,
                                  boolean auto_enable)
      • getMins

        private int getMins​(java.lang.String str)
      • checkIPSets

        private void checkIPSets()
      • checkIPSetsSupport

        private void checkIPSetsSupport()
      • checkPrioritisers

        private void checkPrioritisers()
      • setProfileActive

        private void setProfileActive​(java.lang.String profile_name)
      • checkSchedule

        private void checkSchedule​(boolean start_of_day,
                                   int tick_count)
      • getSchedule

        public java.util.List<java.lang.String> getSchedule()
      • setSchedule

        public java.util.List<java.lang.String> setSchedule​(java.util.List<java.lang.String> lines)
      • checkTagNetLimits

        private void checkTagNetLimits​(int tick_count)
      • formatUp

        private java.lang.String formatUp​(int rate)
      • formatDown

        private java.lang.String formatDown​(int rate)
      • format

        private java.lang.String format​(int rate)
      • formatUp

        private java.lang.String formatUp​(java.util.List<LimitedRateGroup> groups)
      • formatDown

        private java.lang.String formatDown​(java.util.List<LimitedRateGroup> groups)
      • format

        private java.lang.String format​(java.util.List<LimitedRateGroup> groups)
      • exportBoolean

        private void exportBoolean​(java.util.Map<java.lang.String,​java.lang.Object> map,
                                   java.lang.String key,
                                   boolean b)
      • importBoolean

        private boolean importBoolean​(java.util.Map<java.lang.String,​java.lang.Object> map,
                                      java.lang.String key)
      • exportInt

        private void exportInt​(java.util.Map<java.lang.String,​java.lang.Object> map,
                               java.lang.String key,
                               int i)
      • importInt

        private int importInt​(java.util.Map<java.lang.String,​java.lang.Object> map,
                              java.lang.String key)
      • exportString

        private void exportString​(java.util.Map<java.lang.String,​java.lang.Object> map,
                                  java.lang.String key,
                                  java.lang.String s)
      • importString

        private java.lang.String importString​(java.util.Map<java.lang.String,​java.lang.Object> map,
                                              java.lang.String key)