process_monitor.h 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738
  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. TOOLKIT_API int process_monitor_destroy(process_monitor_t* monitor);
  26. #ifdef __cplusplus
  27. } // extern "C" {
  28. #endif
  29. #endif //__PROCESS_MONITOR_H__