#pragma once #include "XNCore_global.h" #include "XNString.h" #include "XNType.h" #include #include #include #include namespace XNSim { /** * @brief 纳秒睡眠相关时间结构体 * @details 用于线程睡眠时间控制 */ struct PERIOD_INFO { /** * @brief 系统提供的时间记录结构体,精确到纳秒 */ timespec next_period; /** * @brief 睡眠时长,单位纳秒 */ XN_INT64 period_ns; }; // 系统时间点类型别名 using XNTimePoint = std::chrono::system_clock::time_point; /** * @brief 将ISO格式的时间字符串转换为系统时间点 * @param timeStr ISO格式的时间字符串 (YYYY-MM-DDTHH:mm:ss) * @return 系统时间点 */ FORCEINLINE XNTimePoint parseISOTime(const XN_STRING &timeStr) { std::tm tm = {}; std::istringstream ss(timeStr); ss >> std::get_time(&tm, "%Y-%m-%dT%H:%M:%S"); auto tp = std::chrono::system_clock::from_time_t(std::mktime(&tm)); return tp; } } // namespace XNSim