mirror of
https://github.com/BeamMP/BeamMP-Server.git
synced 2026-08-27 04:27:42 +00:00
Move server time partially into header file
This commit is contained in:
@@ -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
@@ -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));
|
||||||
|
|||||||
Reference in New Issue
Block a user