/** * @file XNThreadManager_p.h * @author jinchao * @brief 线程管理器类私有头文件 * @version 1.0 * @date 2024-11-07 * * @copyright Copyright (c) 2024 XN * */ #pragma once #include "XNBaseFrameObject/XNBaseFrameObject_p.h" namespace XNSim { /** * @brief 周期性函数存储结构体 */ struct XNFunInfo { /** * @brief 周期性函数包装器 */ XNCallBack fun; /** * @brief 线程ID */ XN_UINT32 threadID; /** * @brief 运行频率组 */ XN_UINT32 freqGroup; /** * @brief 运行节点 */ XN_UINT32 RunPos; /** * @brief 运行优先级 */ XN_UINT32 RunPriority; }; /** * @brief 声明周期性函数存储结构体的智能指针 */ using XNFunInfoPtr = std::shared_ptr; using XNFunInfoMap = std::map>; using XNThreadMap = std::map; using XNThreadIDSet = std::set; /** * @brief 线程管理器类私有结构体 */ struct XNThreadManagerPrivate : public XNBaseFrameObjectPrivate { /** * @brief 所有线程运行状态 */ RunStatus _eRunStatus; /** * @brief 线程列表 */ XNThreadMap _threadList; /** * @brief 周期性函数存储列表 */ XNFunInfoMap _funList; /** * @brief 线程ID */ XNThreadIDSet _threadIDMap; }; } // namespace XNSim