/* * category: [process] * apply status: * edit status: * build status: * description: TODO: use SIGCLD to replace it under unix platform. */ #ifndef __PROCESS_MONITOR_H__ #define __PROCESS_MONITOR_H__ #pragma once #include "toolkit.h" #ifdef __cplusplus extern "C" { #endif typedef struct process_monitor_t process_monitor_t; // true for remove handle typedef int (*process_monitor_on_detect_process_end) \ (process_monitor_t *monitor, HANDLE hProc, void *user_data); TOOLKIT_API int process_monitor_create(process_monitor_t **p_monitor); TOOLKIT_API int process_monitor_set_cb(process_monitor_t *monitor, process_monitor_on_detect_process_end cb, void *user_data); TOOLKIT_API int process_monitor_start(process_monitor_t *monitor); TOOLKIT_API int process_monitor_stop(process_monitor_t *monitor); TOOLKIT_API int process_monitor_add(process_monitor_t *monitor, tk_process_t* process); TOOLKIT_API int process_monitor_remove(process_monitor_t *monitor, tk_process_t* process); #ifdef __cplusplus } // extern "C" { #endif #endif //__PROCESS_MONITOR_H__