Files
flutter_server_box/lib/data/model/server/try_limiter.dart
2023-09-13 15:22:48 +08:00

30 lines
549 B
Dart

import 'package:toolbox/data/res/store.dart';
class TryLimiter {
final Map<String, int> _triedTimes = {};
bool canTry(String id) {
final maxCount = Stores.setting.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();
}
}