#pragma once #include #include #include class CPU { public: CPU(); std::mutex CPU_Mutex; int CPU_PREVIOUS_WORK; int CPU_PREVIOUS_TOTAL; int CPU_WORK; int CPU_TOTAL; int UPDATE_INTERVAL; // s std::vector> CPU_PREVIOUS_CORES_WORK_AND_TOTAL; std::vector> CPU_CORES_WORK_AND_TOTAL; void START_CPU_POLLING(); static void CPU_POLL(CPU* cpu); void END_CPU_POLLING(); double CPU_PERCENT(int core); std::vector CPU_CORE_PERCENT(); unsigned int CPU_HARDWARE_THREADS = std::thread::hardware_concurrency(); virtual ~CPU(); private: std::thread* m_pollThread; bool m_isPolling; }; static CPU* CPU_Instance;