protected void setEnabledSupport(boolean _enabled) {
    if (enabled != _enabled) {

      log("Enabled set to " + _enabled);

      if (_enabled) {

        original_limits = adapter.getLimits();

      } else {

        ping_mapper.saveHistory();
      }

      enableOrAlgChanged();

      enabled = _enabled;

      if (speed_tester != null) {

        speed_tester.setContactNumber(enabled ? CONTACT_NUMBER : 0);
      }

      if (!enabled) {

        adapter.setLimits(original_limits, true, provider.getAdjustsDownloadLimits());
      }
    }
  }
  public void generate(IndentWriter writer) {
    writer.println("SpeedManager: enabled=" + enabled + ",provider=" + provider);

    try {
      writer.indent();

      ping_mapper.generateEvidence(writer);

    } finally {

      writer.exdent();
    }
  }
 public void setEstimatedDownloadCapacityBytesPerSec(int bytes_per_sec, float metric) {
   ping_mapper.setEstimatedDownloadCapacityBytesPerSec(bytes_per_sec, metric);
 }
 public void reset() {
   ping_mapper.reset();
 }
 public SpeedManagerLimitEstimate getEstimatedDownloadCapacityBytesPerSec() {
   return (ping_mapper.getEstimatedDownloadCapacityBytesPerSec());
 }