/** * @file XNThreadManager_p.h * @author jinchao * @brief 线程管理器类私有头文件 * @version 1.0 * @date 2024-11-07 * * @copyright Copyright (c) 2024 XN * */ #pragma once #include "XNBaseFrameObject_p.h" #include "XNThread.h" /** * @brief 周期性函数存储结构体 */ struct funInfo { /** * @brief 周期性函数包装器 */ XNCallBack fun; /** * @brief 运行频率组 */ quint32 freqGroup; /** * @brief 运行节点 */ quint32 RunPos; /** * @brief 运行优先级 */ quint32 RunPriority; }; /** * @brief 声明周期性函数存储结构体的智能指针 */ using funInfoPtr = QSharedPointer; /** * @brief 线程管理器类私有结构体 */ class XNThreadManagerPrivate : public XNBaseFrameObjectPrivate { public: XNThreadManagerPrivate(XNThreadManager *q) : XNBaseFrameObjectPrivate(q) {} Q_DECLARE_PUBLIC(XNThreadManager) private: /** * @brief 所有线程运行状态 */ RunStatus _eRunStatus; /** * @brief 周期性函数存储列表 */ QMap > funList; /** * @brief 基础运行频率 */ double dRunFreq = BASE_RUN_FREQ; /** * @brief 基础运行间隔 */ double dRunInter = BASE_RUN_INTER; /** * @brief 线程ID */ QSet threadIDMap; /** * @brief 线程数量 */ quint32 threadCount = 0; };