56 lines
1.1 KiB
C++
56 lines
1.1 KiB
C++
#include "ui.hpp"
|
|
#include <string>
|
|
#include <vector>
|
|
|
|
#ifdef _WIN32
|
|
#include <Windows.h>
|
|
#else
|
|
#include <unistd.h>
|
|
#endif
|
|
|
|
#ifndef CPU_MON_HPP_
|
|
#define CPU_MON_HPP_
|
|
|
|
const int NUM_ESTADOS_CPU = 10;
|
|
|
|
enum EstadosCPU {
|
|
S_USER = 0,
|
|
S_NICE,
|
|
S_SYSTEM,
|
|
S_IDLE,
|
|
S_IOWAIT,
|
|
S_IRQ,
|
|
S_SOFTIRQ,
|
|
S_STEAL,
|
|
S_GUEST,
|
|
S_GUEST_NICE
|
|
};
|
|
|
|
typedef struct DatosCPU {
|
|
std::string cpu;
|
|
size_t times[NUM_ESTADOS_CPU];
|
|
} DatosCPU;
|
|
|
|
class CpuMon {
|
|
private:
|
|
uint8_t num_hilos;
|
|
uint8_t num_sectores;
|
|
int columnas;
|
|
WINDOW *ventanaMonitorCPU;
|
|
static void esperar(int segundos);
|
|
bool enFuncionamiento;
|
|
|
|
public:
|
|
CpuMon(uint8_t num_hilos, WINDOW *ventanaMonitorCPU);
|
|
void iniciarCPU_MON();
|
|
void pararCPU_MON();
|
|
size_t getTiempoInactivo(const DatosCPU &e);
|
|
size_t getTiempoActivo(const DatosCPU &e);
|
|
void leerEstadoCPU(std::vector<DatosCPU> &entradas);
|
|
void obtenerUsoCPU(const std::vector<DatosCPU> &entradas1,
|
|
const std::vector<DatosCPU> &entradas2);
|
|
std::string obtenerBarra(float *porcentaje, uint8_t *cpu);
|
|
void setNum_sectores(uint8_t num_sectores);
|
|
};
|
|
#endif // CPU_MON_HPP_
|