00001
00002
00003
00004 #ifndef REQUEST_H
00005 #define REQUEST_H
00006
00064 #ifdef __cplusplus
00065 extern "C" {
00066 #endif
00067
00068 typedef struct GWEN_IPC_REQUEST GWEN_IPC_REQUEST;
00069
00070 #ifdef __cplusplus
00071 }
00072 #endif
00073
00074 #include <gwenhywfar/db.h>
00075 #include <gwenhywfar/inherit.h>
00076 #include <gwenhywfar/misc.h>
00077 #include <gwenhywfar/list2.h>
00078 #include <gwenhywfar/types.h>
00079 #include <gwenhywfar/gwentime.h>
00080
00081 #ifdef __cplusplus
00082 extern "C" {
00083 #endif
00084
00085 typedef enum {
00086 GWEN_IpcRequest_StatusUnknown=-1,
00088 GWEN_IpcRequest_StatusNew=0,
00090 GWEN_IpcRequest_StatusSent,
00092 GWEN_IpcRequest_StatusPartial,
00094 GWEN_IpcRequest_StatusAnswered,
00096 GWEN_IpcRequest_StatusFinished
00097 } GWEN_IPC_REQUEST_STATUS;
00098
00099 GWEN_IPC_REQUEST_STATUS GWEN_IpcRequest_Status_fromString(const char *s);
00100 const char *GWEN_IpcRequest_Status_toString(GWEN_IPC_REQUEST_STATUS v);
00101
00102 typedef int (*GWEN_IPC_REQUEST_WORK_FN)(GWEN_IPC_REQUEST *st);
00103
00104 GWEN_INHERIT_FUNCTION_LIB_DEFS(GWEN_IPC_REQUEST, GWENHYWFAR_API)
00105 GWEN_LIST_FUNCTION_LIB_DEFS(GWEN_IPC_REQUEST, GWEN_IpcRequest, GWENHYWFAR_API)
00106 GWEN_IPC_REQUEST_LIST *GWEN_IpcRequest_List_dup(const GWEN_IPC_REQUEST_LIST *stl);
00107
00108 GWEN_LIST2_FUNCTION_LIB_DEFS(GWEN_IPC_REQUEST, GWEN_IpcRequest, GWENHYWFAR_API)
00109
00112 GWENHYWFAR_API void GWEN_IpcRequest_List2_freeAll(GWEN_IPC_REQUEST_LIST2 *stl);
00115 GWENHYWFAR_API GWEN_IPC_REQUEST_LIST2 *GWEN_IpcRequest_List2_dup(const GWEN_IPC_REQUEST_LIST2 *stl);
00116
00119 GWENHYWFAR_API GWEN_IPC_REQUEST *GWEN_IpcRequest_new();
00122 GWENHYWFAR_API void GWEN_IpcRequest_free(GWEN_IPC_REQUEST *st);
00125 GWENHYWFAR_API void GWEN_IpcRequest_Attach(GWEN_IPC_REQUEST *st);
00128 GWENHYWFAR_API GWEN_IPC_REQUEST *GWEN_IpcRequest_dup(const GWEN_IPC_REQUEST*st);
00131 GWENHYWFAR_API GWEN_IPC_REQUEST *GWEN_IpcRequest_fromDb(GWEN_DB_NODE *db);
00134 GWENHYWFAR_API int GWEN_IpcRequest_toDb(const GWEN_IPC_REQUEST*st, GWEN_DB_NODE *db);
00137 GWENHYWFAR_API int GWEN_IpcRequest_IsModified(const GWEN_IPC_REQUEST *st);
00140 GWENHYWFAR_API void GWEN_IpcRequest_SetModified(GWEN_IPC_REQUEST *st, int i);
00141
00142
00146 GWENHYWFAR_API GWEN_TYPE_UINT32 GWEN_IpcRequest_GetId(const GWEN_IPC_REQUEST *el);
00150 GWENHYWFAR_API void GWEN_IpcRequest_SetId(GWEN_IPC_REQUEST *el, GWEN_TYPE_UINT32 d);
00151
00155 GWENHYWFAR_API const char *GWEN_IpcRequest_GetName(const GWEN_IPC_REQUEST *el);
00159 GWENHYWFAR_API void GWEN_IpcRequest_SetName(GWEN_IPC_REQUEST *el, const char *d);
00160
00164 GWENHYWFAR_API GWEN_TYPE_UINT32 GWEN_IpcRequest_GetIpcId(const GWEN_IPC_REQUEST *el);
00168 GWENHYWFAR_API void GWEN_IpcRequest_SetIpcId(GWEN_IPC_REQUEST *el, GWEN_TYPE_UINT32 d);
00169
00173 GWENHYWFAR_API const GWEN_TIME *GWEN_IpcRequest_GetExpires(const GWEN_IPC_REQUEST *el);
00177 GWENHYWFAR_API void GWEN_IpcRequest_SetExpires(GWEN_IPC_REQUEST *el, const GWEN_TIME *d);
00178
00182 GWENHYWFAR_API GWEN_IPC_REQUEST_LIST *GWEN_IpcRequest_GetSubRequests(const GWEN_IPC_REQUEST *el);
00186 GWENHYWFAR_API void GWEN_IpcRequest_SetSubRequests(GWEN_IPC_REQUEST *el, GWEN_IPC_REQUEST_LIST *d);
00187
00191 GWENHYWFAR_API GWEN_IPC_REQUEST_STATUS GWEN_IpcRequest_GetStatus(const GWEN_IPC_REQUEST *el);
00195 GWENHYWFAR_API void GWEN_IpcRequest_SetStatus(GWEN_IPC_REQUEST *el, GWEN_IPC_REQUEST_STATUS d);
00196
00200 GWENHYWFAR_API GWEN_IPC_REQUEST_WORK_FN GWEN_IpcRequest_GetWorkFn(const GWEN_IPC_REQUEST *st);
00204 GWENHYWFAR_API void GWEN_IpcRequest_SetWorkFn(GWEN_IPC_REQUEST *st, GWEN_IPC_REQUEST_WORK_FN d);
00207 GWENHYWFAR_API int GWEN_IpcRequest_WorkFn(GWEN_IPC_REQUEST *st);
00208
00209
00210 #ifdef __cplusplus
00211 }
00212 #endif
00213
00214
00215 #endif