process_monitor.h 1.0 KB

12345678910111213141516171819202122232425262728293031323334353637
  1. /*
  2. * category: [process]
  3. * apply status:
  4. * edit status:
  5. * build status:
  6. * description: TODO: use SIGCLD to replace it under unix platform.
  7. */
  8. #ifndef __PROCESS_MONITOR_H__
  9. #define __PROCESS_MONITOR_H__
  10. #pragma once
  11. #include "toolkit.h"
  12. #ifdef __cplusplus
  13. extern "C" {
  14. #endif
  15. typedef struct process_monitor_t process_monitor_t;
  16. // true for remove handle
  17. typedef int (*process_monitor_on_detect_process_end) \
  18. (process_monitor_t *monitor, HANDLE hProc, void *user_data);
  19. TOOLKIT_API int process_monitor_create(process_monitor_t **p_monitor);
  20. TOOLKIT_API int process_monitor_set_cb(process_monitor_t *monitor, process_monitor_on_detect_process_end cb, void *user_data);
  21. TOOLKIT_API int process_monitor_start(process_monitor_t *monitor);
  22. TOOLKIT_API int process_monitor_stop(process_monitor_t *monitor);
  23. TOOLKIT_API int process_monitor_add(process_monitor_t *monitor, tk_process_t* process);
  24. TOOLKIT_API int process_monitor_remove(process_monitor_t *monitor, tk_process_t* process);
  25. #ifdef __cplusplus
  26. } // extern "C" {
  27. #endif
  28. #endif //__PROCESS_MONITOR_H__