14inline std::optional<std::string>
get_env(std::string_view name) {
15 std::string key{name};
17 char* value =
nullptr;
19 if (_dupenv_s(&value, &size, key.c_str()) != 0 || value ==
nullptr)
22 std::string result(value);
24 if (result.empty())
return std::nullopt;
27 if (
const char* value = std::getenv(key.c_str()); value && *value)
28 return std::string(value);
36 gmtime_s(&out, &value);
38 if (gmtime_r(&value, &out) ==
nullptr)
47 localtime_s(&out, &value);
49 if (localtime_r(&value, &out) ==
nullptr)
55inline void copy_c_string(
char* dest, std::size_t dest_size, std::string_view src) {
56 if (dest ==
nullptr || dest_size == 0)
return;
57 const auto count = (std::min)(src.size(), dest_size - 1);
58 std::memcpy(dest, src.data(), count);
62template <std::
size_t N>
Definition generated_event_source.hpp:33
std::tm gmtime_utc(std::time_t value)
Definition system.hpp:33
const SystemInfo & get_system_info()
Query system information (cached after first call).
std::optional< std::string > get_env(std::string_view name)
Definition system.hpp:14
int cpu_thread_count()
Number of logical CPU threads (convenience).
uint64_t total_memory_mb()
Total physical memory in MB (convenience).
std::tm localtime_local(std::time_t value)
Definition system.hpp:44
void copy_c_string(char *dest, std::size_t dest_size, std::string_view src)
Definition system.hpp:55
std::string arch
Definition system.hpp:76
bool has_fma
Definition system.hpp:85
bool has_avx2
Definition system.hpp:82
bool has_sse4_1
Definition system.hpp:80
std::string os_version
Definition system.hpp:71
bool has_avx
Definition system.hpp:81
bool has_avx512
Definition system.hpp:83
uint64_t total_memory_mb
Definition system.hpp:75
int display_count
Definition system.hpp:88
float primary_display_scale
Definition system.hpp:91
std::string os_name
Definition system.hpp:70
int cpu_threads
Definition system.hpp:74
int primary_display_height
Definition system.hpp:90
bool has_neon
Definition system.hpp:84
std::string cpu_model
Definition system.hpp:72
bool has_sse2
Definition system.hpp:79
int cpu_cores
Definition system.hpp:73
int primary_display_width
Definition system.hpp:89