00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013 #ifndef AH_JOB_H
00014 #define AH_JOB_H
00015
00016 #include <gwenhywfar/inherit.h>
00017 #include <aqhbci/result.h>
00018
00019 #include <stdio.h>
00020
00021
00022 #ifdef __cplusplus
00023 extern "C" {
00024 #endif
00025 typedef struct AH_JOB AH_JOB;
00026
00027 #include <gwenhywfar/misc.h>
00028 #include <gwenhywfar/misc2.h>
00029 #include <gwenhywfar/inherit.h>
00030
00031 GWEN_INHERIT_FUNCTION_DEFS(AH_JOB);
00032 GWEN_LIST2_FUNCTION_DEFS(AH_JOB, AH_Job);
00033 void AH_Job_List2_FreeAll(AH_JOB_LIST2 *jl);
00034 #ifdef __cplusplus
00035 }
00036 #endif
00037
00038
00039
00040 #include <gwenhywfar/db.h>
00041 #include <aqhbci/customer.h>
00042 #include <aqbanking/job.h>
00043
00044
00045 #ifdef __cplusplus
00046 extern "C" {
00047 #endif
00048
00049 typedef enum {
00050 AH_JobStatusUnknown=0,
00051 AH_JobStatusToDo,
00052 AH_JobStatusEnqueued,
00053 AH_JobStatusEncoded,
00054 AH_JobStatusSent,
00055 AH_JobStatusAnswered,
00056 AH_JobStatusError,
00057
00058 AH_JobStatusAll=255
00059 } AH_JOB_STATUS;
00060
00061
00062 typedef enum {
00063 AH_Job_ExchangeModeParams=0,
00064 AH_Job_ExchangeModeArgs,
00065 AH_Job_ExchangeModeResults
00066 } AH_JOB_EXCHANGE_MODE;
00067
00068
00073 typedef int (*AH_JOB_PROCESS_FN)(AH_JOB *j);
00074 typedef int (*AH_JOB_COMMIT_FN)(AH_JOB *j);
00075 typedef int (*AH_JOB_EXCHANGE_FN)(AH_JOB *j, AB_JOB *bj,
00076 AH_JOB_EXCHANGE_MODE m);
00085 typedef int (*AH_JOB_NEXTMSG_FN)(AH_JOB *j);
00086
00095 void AH_Job_free(AH_JOB *j);
00096 void AH_Job_Attach(AH_JOB *j);
00097
00105 const char *AH_Job_GetName(const AH_JOB *j);
00106 const char *AH_Job_GetAccountId(const AH_JOB *j);
00107 const char *AH_Job_GetDescription(const AH_JOB *j);
00108
00109 int AH_Job_GetMinSignatures(const AH_JOB *j);
00110 int AH_Job_GetJobsPerMsg(const AH_JOB *j);
00111
00112 AH_CUSTOMER *AH_Job_GetCustomer(const AH_JOB *j);
00113
00114 GWEN_DB_NODE *AH_Job_GetParams(const AH_JOB *j);
00115 GWEN_DB_NODE *AH_Job_GetArguments(const AH_JOB *j);
00116 GWEN_DB_NODE *AH_Job_GetResponses(const AH_JOB *j);
00117
00118 unsigned int AH_Job_GetMsgNum(const AH_JOB *j);
00119 const char *AH_Job_GetDialogId(const AH_JOB *j);
00120
00121 AH_JOB_STATUS AH_Job_GetStatus(const AH_JOB *j);
00122 const char *AH_Job_StatusName(AH_JOB_STATUS st);
00123
00124 void AH_Job_AddSigner(AH_JOB *j, const char *s);
00125
00126 int AH_Job_HasWarnings(const AH_JOB *j);
00127 int AH_Job_HasErrors(const AH_JOB *j);
00128
00129 AH_RESULT_LIST *AH_Job_GetSegResults(const AH_JOB *j);
00130 AH_RESULT_LIST *AH_Job_GetMsgResults(const AH_JOB *j);
00131
00139 int AH_Job_Process(AH_JOB *j);
00140 int AH_Job_Commit(AH_JOB *j);
00143 int AH_Job_Exchange(AH_JOB *j, AB_JOB *bj, AH_JOB_EXCHANGE_MODE m);
00144
00145
00151 int AH_Job_CommitSystemData(AH_JOB *j);
00152
00153
00159 int AH_Job_DefaultProcessHandler(AH_JOB *j);
00160
00165 int AH_Job_DefaultCommitHandler(AH_JOB *j);
00174 void AH_Job_SetProcessFn(AH_JOB *j, AH_JOB_PROCESS_FN f);
00175 void AH_Job_SetCommitFn(AH_JOB *j, AH_JOB_COMMIT_FN f);
00176 void AH_Job_SetExchangeFn(AH_JOB *j, AH_JOB_EXCHANGE_FN f);
00177 void AH_Job_SetNextMsgFn(AH_JOB *j, AH_JOB_NEXTMSG_FN f);
00181 void AH_Job_Dump(const AH_JOB *j, FILE *f, unsigned int insert);
00182
00183 const GWEN_STRINGLIST *AH_Job_GetLogs(const AH_JOB *j);
00184
00185
00186 #ifdef __cplusplus
00187 }
00188 #endif
00189
00190
00191 #endif
00192
00193
00194
00195