75 lines
1.3 KiB
C++
Executable File
75 lines
1.3 KiB
C++
Executable File
/**
|
|
* @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<funInfo>;
|
|
|
|
/**
|
|
* @brief 线程管理器类私有结构体
|
|
*/
|
|
class XNThreadManagerPrivate : public XNBaseFrameObjectPrivate
|
|
{
|
|
public:
|
|
XNThreadManagerPrivate(XNThreadManager *q) : XNBaseFrameObjectPrivate(q) {}
|
|
Q_DECLARE_PUBLIC(XNThreadManager)
|
|
private:
|
|
/**
|
|
* @brief 所有线程运行状态
|
|
*/
|
|
RunStatus _eRunStatus;
|
|
/**
|
|
* @brief 周期性函数存储列表
|
|
*/
|
|
QMap<quint32, std::vector<funInfoPtr> > funList;
|
|
/**
|
|
* @brief 基础运行频率
|
|
*/
|
|
double dRunFreq = BASE_RUN_FREQ;
|
|
/**
|
|
* @brief 基础运行间隔
|
|
*/
|
|
double dRunInter = BASE_RUN_INTER;
|
|
/**
|
|
* @brief 线程ID
|
|
*/
|
|
QSet<quint32> threadIDMap;
|
|
/**
|
|
* @brief 线程数量
|
|
*/
|
|
quint32 threadCount = 0;
|
|
};
|