50 lines
1.2 KiB
C++
50 lines
1.2 KiB
C++
/*************************************************************************
|
|
> File Name : ../include/CJudge.h
|
|
> Author : FengChao
|
|
> EMail : smile.fengchao@gmail.com
|
|
> Created Time : Thu 16 Jul 2020 11:33:38 AM CST
|
|
************************************************************************/
|
|
|
|
#ifndef CJUDGE_H
|
|
#define CJUDGE_H
|
|
|
|
#include <mutex>
|
|
#include "CTypedef.h"
|
|
#include "CJudgeUtils.h"
|
|
|
|
typedef std::map<std::string, std::set<int> > CACHE_MAP;
|
|
typedef std::vector<NosConfMsg_ST> MSG_VEC;
|
|
|
|
struct MsgGroup
|
|
{
|
|
CACHE_MAP cache_map; // 一组执行体消息的对比缓存
|
|
MSG_VEC msg_vec; // 一组执行体消息源
|
|
time_t start_ms; // 一组新消息进入起始时间
|
|
unsigned int uiPort; // 一组消息的端口
|
|
};
|
|
|
|
class JudgeConf : public CSingleton<JudgeConf>
|
|
{
|
|
public:
|
|
JudgeConf() { }
|
|
virtual ~JudgeConf() { }
|
|
|
|
public:
|
|
void Init(int _nos_num, int _running_num);
|
|
void Judge();
|
|
|
|
private:
|
|
std::map<int, MsgGroup> group_map; // 按iCmd划分消息组,nos端口相同
|
|
|
|
int nos_num;
|
|
int running_num;
|
|
|
|
int nos_status; // 各个nos是否running TODO
|
|
|
|
private:
|
|
int GetCacheNosNum(CACHE_MAP& map);
|
|
|
|
};
|
|
|
|
#endif
|