2025-01-21 14:24:31 +03:00
|
|
|
import 'package:friflex_starter/features/debug/i_debug_service.dart';
|
|
|
|
|
|
|
|
|
|
/// {@template TimerRunner}
|
|
|
|
|
/// Класс для подсчета времени запуска приложения
|
|
|
|
|
/// {@endtemplate}
|
|
|
|
|
class TimerRunner {
|
|
|
|
|
/// {@macro TimerRunner}
|
|
|
|
|
TimerRunner(this._debugService) {
|
|
|
|
|
_stopwatch.start();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/// Сервис для отладки
|
|
|
|
|
final IDebugService _debugService;
|
|
|
|
|
|
|
|
|
|
/// Секундомер для подсчета времени инициализации
|
|
|
|
|
final _stopwatch = Stopwatch();
|
|
|
|
|
|
|
|
|
|
/// Метод для остановки секундомера и вывода времени
|
|
|
|
|
/// полной инициализации приложения
|
|
|
|
|
void stop() {
|
|
|
|
|
_stopwatch.stop();
|
|
|
|
|
_debugService.log(
|
|
|
|
|
'Время инициализации приложения: ${_stopwatch.elapsedMilliseconds} мс',
|
|
|
|
|
);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/// Метод для обработки прогресса инициализации зависимостей
|
|
|
|
|
void logOnProgress(String name) {
|
|
|
|
|
_debugService.log(
|
|
|
|
|
'$name успешная инициализация, прогресс: ${_stopwatch.elapsedMilliseconds} мс',
|
|
|
|
|
);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/// Метод для обработки прогресса инициализации зависимостей
|
|
|
|
|
void logOnComplete(String message) {
|
|
|
|
|
_debugService.log(
|
|
|
|
|
'$message, прогресс: ${_stopwatch.elapsedMilliseconds} мс',
|
|
|
|
|
);
|
2025-02-12 10:53:38 +03:00
|
|
|
|
2025-01-21 14:24:31 +03:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/// Метод для обработки прогресса инициализации зависимостей
|
|
|
|
|
void logOnError(
|
2025-02-04 10:18:41 +03:00
|
|
|
String message,
|
|
|
|
|
Object error, [
|
2025-01-21 14:24:31 +03:00
|
|
|
StackTrace? stackTrace,
|
2025-02-04 10:18:41 +03:00
|
|
|
]) {
|
|
|
|
|
_debugService.logError(() => message, error: error, stackTrace: stackTrace);
|
2025-01-21 14:24:31 +03:00
|
|
|
}
|
|
|
|
|
}
|