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
00028
00029
00030 #ifndef GWENHYWFAR_PROCESS_H
00031 #define GWENHYWFAR_PROCESS_H
00032
00033 #include <gwenhywfar/gwenhywfarapi.h>
00034 #include <gwenhywfar/types.h>
00035 #include <gwenhywfar/bufferedio.h>
00036 #include <gwenhywfar/error.h>
00037
00039 #define GWEN_PROCESS_FLAGS_REDIR_STDIN 0x00000001
00040
00041 #define GWEN_PROCESS_FLAGS_REDIR_STDOUT 0x00000002
00042
00043 #define GWEN_PROCESS_FLAGS_REDIR_STDERR 0x00000004
00044
00045 #define GWEN_PROCESS_FLAGS_DEFAULT 0
00046
00047
00048 #ifdef __cplusplus
00049 extern "C" {
00050 #endif
00051
00052 typedef struct GWEN_PROCESS GWEN_PROCESS;
00053
00057 typedef enum {
00059 GWEN_ProcessStateNotStarted=0,
00061 GWEN_ProcessStateRunning,
00063 GWEN_ProcessStateExited,
00066 GWEN_ProcessStateAborted,
00068 GWEN_ProcessStateStopped,
00070 GWEN_ProcessStateUnknown
00071 } GWEN_PROCESS_STATE;
00072
00073
00078 GWENHYWFAR_API GWEN_PROCESS *GWEN_Process_new();
00079
00086 GWENHYWFAR_API void GWEN_Process_free(GWEN_PROCESS *pr);
00087
00092 GWENHYWFAR_API
00093 uint32_t GWEN_Process_GetFlags(const GWEN_PROCESS *pr);
00094
00099 GWENHYWFAR_API
00100 void GWEN_Process_SetFlags(GWEN_PROCESS *pr, uint32_t f);
00101
00106 GWENHYWFAR_API
00107 void GWEN_Process_AddFlags(GWEN_PROCESS *pr, uint32_t f);
00108
00113 GWENHYWFAR_API
00114 void GWEN_Process_SubFlags(GWEN_PROCESS *pr, uint32_t f);
00115
00123 GWENHYWFAR_API GWEN_PROCESS_STATE GWEN_Process_Start(GWEN_PROCESS *pr,
00124 const char *prg,
00125 const char *args);
00126
00130 GWENHYWFAR_API GWEN_PROCESS_STATE GWEN_Process_CheckState(GWEN_PROCESS *pr);
00131
00136 GWENHYWFAR_API int GWEN_Process_GetResult(GWEN_PROCESS *pr);
00137
00141 GWENHYWFAR_API int GWEN_Process_Wait(GWEN_PROCESS *pr);
00142
00148 GWENHYWFAR_API int GWEN_Process_Terminate(GWEN_PROCESS *pr);
00149
00155 GWENHYWFAR_API
00156 GWEN_BUFFEREDIO *GWEN_Process_GetStdin(const GWEN_PROCESS *pr);
00157
00163 GWENHYWFAR_API
00164 GWEN_BUFFEREDIO *GWEN_Process_GetStdout(const GWEN_PROCESS *pr);
00165
00171 GWENHYWFAR_API
00172 GWEN_BUFFEREDIO *GWEN_Process_GetStderr(const GWEN_PROCESS *pr);
00173
00174
00175 #ifdef __cplusplus
00176 }
00177 #endif
00178
00179
00180 #endif
00181
00182