updateProxies method

  1. @override
void updateProxies(
  1. List<Proxy> proxies
)
override

Updates the internal list of proxies

Implementation

@override
void updateProxies(List<Proxy> proxies) {
  _proxies.clear();
  _proxies.addAll(proxies);

  // Initialize weights for new proxies
  for (final proxy in proxies) {
    final key = _getProxyKey(proxy);
    if (!_weights.containsKey(key)) {
      _weights[key] = 1.0;
      _history[key] = [];
    }
  }

  // Remove weights for proxies that are no longer in the list
  final keysToRemove = <String>[];
  for (final key in _weights.keys) {
    if (!proxies.any((p) => _getProxyKey(p) == key)) {
      keysToRemove.add(key);
    }
  }
  for (final key in keysToRemove) {
    _weights.remove(key);
    _history.remove(key);
    _lastUsed.remove(key);
  }
}