basetask.h 761 B

123456789101112131415161718192021222324252627
  1. #ifndef __BASETASK_H__
  2. #define __BASETASK_H__
  3. #include <vector>
  4. #include <map>
  5. #include <utility>
  6. #include <string>
  7. typedef void (TaskBase)(int, std::vector<int> params);
  8. /* Funciones que llaman las tareas para simular uso */
  9. void uso_CPU(int pid, unsigned int ms);
  10. void uso_IO(int pid, unsigned int ms);
  11. /* Factory (ignorar) */
  12. #define register_task(tipo, nprms) { task_defs[#tipo] = ptski(tipo, nprms); }
  13. typedef std::pair<TaskBase*, int> ptski;
  14. extern std::map<std::string, ptski> task_defs;
  15. struct ptsk {
  16. TaskBase* tsk; std::vector<int> prms; unsigned int start; unsigned int end;
  17. ptsk(TaskBase* vtsk, const std::vector<int>& vprms, unsigned int vstart, unsigned int vend);
  18. ptsk(void);
  19. };
  20. std::vector<ptsk> tasks_load(const char* filename);
  21. #endif