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
00077 GWENHYWFAR_API GWEN_ERRORCODE GWEN_Process_ModuleInit();
00078
00082 GWENHYWFAR_API GWEN_ERRORCODE GWEN_Process_ModuleFini();
00083
00084
00089 GWENHYWFAR_API GWEN_PROCESS *GWEN_Process_new();
00090
00097 GWENHYWFAR_API void GWEN_Process_free(GWEN_PROCESS *pr);
00098
00103 GWENHYWFAR_API
00104 GWEN_TYPE_UINT32 GWEN_Process_GetFlags(const GWEN_PROCESS *pr);
00105
00110 GWENHYWFAR_API
00111 void GWEN_Process_SetFlags(GWEN_PROCESS *pr, GWEN_TYPE_UINT32 f);
00112
00117 GWENHYWFAR_API
00118 void GWEN_Process_AddFlags(GWEN_PROCESS *pr, GWEN_TYPE_UINT32 f);
00119
00124 GWENHYWFAR_API
00125 void GWEN_Process_SubFlags(GWEN_PROCESS *pr, GWEN_TYPE_UINT32 f);
00126
00134 GWENHYWFAR_API GWEN_PROCESS_STATE GWEN_Process_Start(GWEN_PROCESS *pr,
00135 const char *prg,
00136 const char *args);
00137
00141 GWENHYWFAR_API GWEN_PROCESS_STATE GWEN_Process_CheckState(GWEN_PROCESS *pr);
00142
00147 GWENHYWFAR_API int GWEN_Process_GetResult(GWEN_PROCESS *pr);
00148
00152 GWENHYWFAR_API int GWEN_Process_Wait(GWEN_PROCESS *pr);
00153
00159 GWENHYWFAR_API int GWEN_Process_Terminate(GWEN_PROCESS *pr);
00160
00166 GWENHYWFAR_API
00167 GWEN_BUFFEREDIO *GWEN_Process_GetStdin(const GWEN_PROCESS *pr);
00168
00174 GWENHYWFAR_API
00175 GWEN_BUFFEREDIO *GWEN_Process_GetStdout(const GWEN_PROCESS *pr);
00176
00182 GWENHYWFAR_API
00183 GWEN_BUFFEREDIO *GWEN_Process_GetStderr(const GWEN_PROCESS *pr);
00184
00185
00186 #ifdef __cplusplus
00187 }
00188 #endif
00189
00190
00191 #endif
00192
00193