/
redgpu
/
ezEngine
Обзор
Документация
Войти
/
redgpu
/
ezEngine
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
dev
Code/Engine/Foundation/Communication/Implementation/TelemetryThread.cpp
73 строки
1 KB
Ingrater
Clang-format fixes and update to 18.1.1 (#1234)
10 мар 2024, 15:51
Не верифицирован
10 мар 2024, 15:51
2f16acf
Код
Авторство
О чём код?
#include <Foundation/FoundationPCH.h> #include <Foundation/Communication/Telemetry.h> #include <Foundation/Threading/Thread.h> class ezTelemetryThread : public ezThread { public: ezTelemetryThread() : ezThread("ezTelemetryThread") { m_bKeepRunning = true; } volatile bool m_bKeepRunning; private: virtual ezUInt32 Run() { ezTime LastPing; while (m_bKeepRunning) { ezTelemetry::UpdateNetwork(); // Send a Ping every once in a while if (ezTelemetry::s_ConnectionMode == ezTelemetry::Client) { ezTime tNow = ezTime::Now(); if (tNow - LastPing > ezTime::MakeFromMilliseconds(500)) { LastPing = tNow; ezTelemetry::UpdateServerPing(); } } ezThreadUtils::Sleep(ezTime::MakeFromMilliseconds(10)); } return 0; } }; static ezTelemetryThread* g_pBroadcastThread = nullptr; ezMutex ezTelemetry::s_TelemetryMutex; ezMutex& ezTelemetry::GetTelemetryMutex() { return s_TelemetryMutex; } void ezTelemetry::StartTelemetryThread() { if (!g_pBroadcastThread) { g_pBroadcastThread = EZ_DEFAULT_NEW(ezTelemetryThread); g_pBroadcastThread->Start(); } } void ezTelemetry::StopTelemetryThread() { if (g_pBroadcastThread) { g_pBroadcastThread->m_bKeepRunning = false; g_pBroadcastThread->Join(); EZ_DEFAULT_DELETE(g_pBroadcastThread); } }