mirror of
https://github.com/lollipopkit/flutter_server_box.git
synced 2025-12-17 07:14:28 +01:00
31 lines
579 B
Dart
31 lines
579 B
Dart
import '../../../locator.dart';
|
|
import '../../store/setting.dart';
|
|
|
|
class TryLimiter {
|
|
final Map<String, int> _triedTimes = {};
|
|
|
|
bool canTry(String id) {
|
|
final maxCount = locator<SettingStore>().maxRetryCount.fetch();
|
|
if (maxCount <= 0) {
|
|
return true;
|
|
}
|
|
final times = _triedTimes[id] ?? 0;
|
|
if (times >= maxCount) {
|
|
return false;
|
|
}
|
|
return true;
|
|
}
|
|
|
|
void inc(String sid) {
|
|
_triedTimes[sid] = (_triedTimes[sid] ?? 0) + 1;
|
|
}
|
|
|
|
void reset(String id) {
|
|
_triedTimes[id] = 0;
|
|
}
|
|
|
|
void clear() {
|
|
_triedTimes.clear();
|
|
}
|
|
}
|