XNSim/Release/include/XNCore/XNThreadManager_p.h

66 lines
1.1 KiB
C++

/**
* @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 线程ID
*/
uint32_t threadID;
/**
* @brief 运行频率组
*/
uint32_t freqGroup;
/**
* @brief 运行节点
*/
uint32_t RunPos;
/**
* @brief 运行优先级
*/
uint32_t RunPriority;
};
/**
* @brief 声明周期性函数存储结构体的智能指针
*/
using funInfoPtr = std::shared_ptr<funInfo>;
/**
* @brief 线程管理器类私有结构体
*/
struct XNThreadManagerPrivate : public XNBaseFrameObjectPrivate {
/**
* @brief 所有线程运行状态
*/
RunStatus _eRunStatus;
/**
* @brief 线程列表
*/
std::map<uint32_t, XNThreadPtr> threadList;
/**
* @brief 周期性函数存储列表
*/
std::map<uint32_t, std::vector<funInfoPtr> > funList;
/**
* @brief 线程ID
*/
std::set<uint32_t> threadIDMap;
};