#ifndef CPRIORITYSCHEDULINGMANAGER_H
#define CPRIORITYSCHEDULINGMANAGER_H

#include <unordered_map>
#include <QString>
#include <vector>
#include <QList>

struct TopState
{
    int8_t topType;
    int8_t topPrio;
    int8_t topSlice;
    int8_t topTypeByTgid;
};

class CPrioritySchedulingManager
{
public:
    void insertTopTask(pid_t pid, TopState topState);
    void eraseTopTask(int pid);
    void enable();
    void disable();
    void clearTopList();
private:
    int64_t topStateToNumber64(TopState topState);
private:
    int m_topTaskEnable;
    std::unordered_map<std::string, std::vector<pid_t>> m_coreTopMap;
};

#endif // CPRIORITYSCHEDULINGMANAGER_H