Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027 #ifndef GWENHYWFAR_PROCESS_H
00028 #define GWENHYWFAR_PROCESS_H
00029
00030 #include <gwenhywfar/gwenhywfarapi.h>
00031 #include <gwenhywfar/types.h>
00032 #include <gwenhywfar/syncio.h>
00033 #include <gwenhywfar/error.h>
00034
00036 #define GWEN_PROCESS_FLAGS_REDIR_STDIN 0x00000001
00037
00038 #define GWEN_PROCESS_FLAGS_REDIR_STDOUT 0x00000002
00039
00040 #define GWEN_PROCESS_FLAGS_REDIR_STDERR 0x00000004
00041
00042 #define GWEN_PROCESS_FLAGS_DEFAULT 0
00043
00044
00045 #ifdef __cplusplus
00046 extern "C" {
00047 #endif
00048
00049 typedef struct GWEN_PROCESS GWEN_PROCESS;
00050
00054 typedef enum {
00056 GWEN_ProcessStateNotStarted=0,
00058 GWEN_ProcessStateRunning,
00060 GWEN_ProcessStateExited,
00063 GWEN_ProcessStateAborted,
00065 GWEN_ProcessStateStopped,
00067 GWEN_ProcessStateUnknown
00068 } GWEN_PROCESS_STATE;
00069
00070
00075 GWENHYWFAR_API GWEN_PROCESS *GWEN_Process_new(void);
00076
00083 GWENHYWFAR_API void GWEN_Process_free(GWEN_PROCESS *pr);
00084
00089 GWENHYWFAR_API
00090 uint32_t GWEN_Process_GetFlags(const GWEN_PROCESS *pr);
00091
00096 GWENHYWFAR_API
00097 void GWEN_Process_SetFlags(GWEN_PROCESS *pr, uint32_t f);
00098
00103 GWENHYWFAR_API
00104 void GWEN_Process_AddFlags(GWEN_PROCESS *pr, uint32_t f);
00105
00110 GWENHYWFAR_API
00111 void GWEN_Process_SubFlags(GWEN_PROCESS *pr, uint32_t f);
00112
00120 GWENHYWFAR_API GWEN_PROCESS_STATE GWEN_Process_Start(GWEN_PROCESS *pr,
00121 const char *prg,
00122 const char *args);
00123
00127 GWENHYWFAR_API GWEN_PROCESS_STATE GWEN_Process_CheckState(GWEN_PROCESS *pr);
00128
00133 GWENHYWFAR_API int GWEN_Process_GetResult(GWEN_PROCESS *pr);
00134
00138 GWENHYWFAR_API int GWEN_Process_Wait(GWEN_PROCESS *pr);
00139
00145 GWENHYWFAR_API int GWEN_Process_Terminate(GWEN_PROCESS *pr);
00146
00152 GWENHYWFAR_API
00153 GWEN_SYNCIO *GWEN_Process_GetStdin(const GWEN_PROCESS *pr);
00154
00160 GWENHYWFAR_API
00161 GWEN_SYNCIO *GWEN_Process_GetStdout(const GWEN_PROCESS *pr);
00162
00168 GWENHYWFAR_API
00169 GWEN_SYNCIO *GWEN_Process_GetStderr(const GWEN_PROCESS *pr);
00170
00171
00172 #ifdef __cplusplus
00173 }
00174 #endif
00175
00176
00177 #endif
00178
00179