tcp/udp 추가, todo:iocp openssl 지원하도록 업데이트하기

This commit is contained in:
2025-05-27 21:52:21 +09:00
parent 27f1e63c98
commit 466a80f02b
25 changed files with 1056 additions and 6 deletions

View File

@@ -0,0 +1,32 @@
#include "utils/snowflake.h"
#include <thread>
namespace utils {
static struct EpochInitializer {
EpochInitializer() { EPOCH = std::chrono::system_clock::now(); }
std::chrono::system_clock::time_point EPOCH;
} epochInitializer;
Snowflake GenerateID() {
static std::mutex snowflakeGenerateMutex_;
std::lock_guard<std::mutex> lock(snowflakeGenerateMutex_);
std::size_t tid =
std::hash<std::thread::id>{}(std::this_thread::get_id());
thread_local static int sequence = 0;
Snowflake id = {};
auto timestamp = std::chrono::duration_cast<std::chrono::milliseconds>(
std::chrono::system_clock::now() - epochInitializer.EPOCH);
id.timestamp = timestamp.count();
id.instance = tid;
id.sequence = sequence++;
return id;
}
}; // namespace Chattr