Move server time partially into header file

This commit is contained in:
Tixx
2026-08-07 01:33:19 +02:00
parent 69233f4185
commit a8dfa4b004
2 changed files with 9 additions and 8 deletions
+2
View File
@@ -53,7 +53,9 @@ public:
io_context& IoCtx() { return mIoCtxPoller.IoCtx(); } io_context& IoCtx() { return mIoCtxPoller.IoCtx(); }
uint64_t GetServerTimeMS() const { return std::chrono::duration_cast<std::chrono::milliseconds>(std::chrono::steady_clock::now() - TimeSyncStart).count();}
private: private:
std::chrono::time_point<std::chrono::steady_clock> TimeSyncStart;
TIoPollThread mIoCtxPoller; TIoPollThread mIoCtxPoller;
TClientSet mClients; TClientSet mClients;
mutable RWMutex mClientsMutex; mutable RWMutex mClientsMutex;
+7 -8
View File
@@ -123,6 +123,12 @@ TEST_CASE("GetPidVid") {
TServer::TServer(const std::vector<std::string_view>& Arguments) { TServer::TServer(const std::vector<std::string_view>& Arguments) {
beammp_info("BeamMP Server v" + Application::ServerVersionString()); beammp_info("BeamMP Server v" + Application::ServerVersionString());
Application::SetSubsystemStatus("Server", Application::Status::Starting); Application::SetSubsystemStatus("Server", Application::Status::Starting);
std::mt19937_64 TimeSyncRandomDevice(std::random_device{}());
TimeSyncStart = std::chrono::steady_clock::now()
- std::chrono::duration_cast<std::chrono::steady_clock::duration>(
std::chrono::duration<double>(std::uniform_real_distribution<double>(0.0, 2592000.0)(TimeSyncRandomDevice))
);
Application::SetSubsystemStatus("Server", Application::Status::Good); Application::SetSubsystemStatus("Server", Application::Status::Good);
} }
@@ -156,13 +162,6 @@ size_t TServer::ClientCount() const {
return mClients.size(); return mClients.size();
} }
std::mt19937_64 TimeSyncRandomDevice(std::random_device{}());
auto TimeSyncStart = std::chrono::steady_clock::now()
- std::chrono::duration_cast<std::chrono::steady_clock::duration>(
std::chrono::duration<double>(std::uniform_real_distribution<double>(0.0, 2592000.0)(TimeSyncRandomDevice))
);
void TServer::GlobalParser(const std::weak_ptr<TClient>& Client, std::vector<uint8_t>&& Packet, TPPSMonitor& PPSMonitor, TNetwork& Network, bool udp) { void TServer::GlobalParser(const std::weak_ptr<TClient>& Client, std::vector<uint8_t>&& Packet, TPPSMonitor& PPSMonitor, TNetwork& Network, bool udp) {
constexpr std::string_view ABG = "ABG:"; constexpr std::string_view ABG = "ABG:";
if (Packet.size() >= ABG.size() && std::equal(Packet.begin(), Packet.begin() + ABG.size(), ABG.begin(), ABG.end())) { if (Packet.size() >= ABG.size() && std::equal(Packet.begin(), Packet.begin() + ABG.size(), ABG.begin(), ABG.end())) {
@@ -219,7 +218,7 @@ void TServer::GlobalParser(const std::weak_ptr<TClient>& Client, std::vector<uin
switch (Code) { switch (Code) {
case 't': case 't':
if (!udp && Packet.size() == 9) { if (!udp && Packet.size() == 9) {
uint64_t Time = std::chrono::duration_cast<std::chrono::milliseconds>(std::chrono::steady_clock::now() - TimeSyncStart).count(); auto Time = GetServerTimeMS();
std::vector<uint8_t> ServerTime(sizeof(uint64_t)); std::vector<uint8_t> ServerTime(sizeof(uint64_t));
std::memcpy(ServerTime.data(), &Time, sizeof(uint64_t)); std::memcpy(ServerTime.data(), &Time, sizeof(uint64_t));