00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00018 #ifndef AQBANKING_PROVIDER_BE_H
00019 #define AQBANKING_PROVIDER_BE_H
00020
00021 #include <aqbanking/provider.h>
00022 #include <aqbanking/user.h>
00023
00024
00025 #ifdef __cplusplus
00026 extern "C" {
00027 #endif
00028
00029
00034
00048 typedef AB_PROVIDER* (*AB_PROVIDER_FACTORY_FN)(AB_BANKING *ab);
00049
00054 typedef enum {
00057 AB_ProviderExtendMode_Create=0,
00059 AB_ProviderExtendMode_Extend,
00063 AB_ProviderExtendMode_Add,
00066 AB_ProviderExtendMode_Remove,
00073 AB_ProviderExtendMode_Save
00074 } AB_PROVIDER_EXTEND_MODE;
00075
00076
00084 typedef int (*AB_PROVIDER_INIT_FN)(AB_PROVIDER *pro, GWEN_DB_NODE *dbData);
00085
00089 typedef int (*AB_PROVIDER_FINI_FN)(AB_PROVIDER *pro, GWEN_DB_NODE *dbData);
00090
00094 typedef int (*AB_PROVIDER_UPDATEJOB_FN)(AB_PROVIDER *pro, AB_JOB *j);
00095
00099 typedef int (*AB_PROVIDER_ADDJOB_FN)(AB_PROVIDER *pro, AB_JOB *j);
00100
00104 typedef int (*AB_PROVIDER_EXECUTE_FN)(AB_PROVIDER *pro,
00105 AB_IMEXPORTER_CONTEXT *ctx);
00106
00107
00111 typedef int (*AB_PROVIDER_RESETQUEUE_FN)(AB_PROVIDER *pro);
00112
00113
00117 typedef int (*AB_PROVIDER_EXTEND_USER_FN)(AB_PROVIDER *pro, AB_USER *u,
00118 AB_PROVIDER_EXTEND_MODE um);
00119
00120
00124 typedef int (*AB_PROVIDER_EXTEND_ACCOUNT_FN)(AB_PROVIDER *pro,
00125 AB_ACCOUNT *a,
00126 AB_PROVIDER_EXTEND_MODE um);
00127
00128 typedef int (*AB_PROVIDER_UPDATE_FN)(AB_PROVIDER *pro,
00129 GWEN_TYPE_UINT32 lastVersion,
00130 GWEN_TYPE_UINT32 currentVersion);
00131
00132
00139 AQBANKING_API
00140 AB_PROVIDER *AB_Provider_new(AB_BANKING *ab,
00141 const char *name);
00142
00146 AQBANKING_API
00147 int AB_Provider_IsInit(const AB_PROVIDER *pro);
00148
00149
00154
00162 AQBANKING_API
00163 int AB_Provider_Init(AB_PROVIDER *pro);
00164
00172 AQBANKING_API
00173 int AB_Provider_Fini(AB_PROVIDER *pro);
00174
00187 AQBANKING_API
00188 int AB_Provider_UpdateJob(AB_PROVIDER *pro, AB_JOB *j);
00189
00211 AQBANKING_API
00212 int AB_Provider_AddJob(AB_PROVIDER *pro, AB_JOB *j);
00213
00221 AQBANKING_API
00222 int AB_Provider_Execute(AB_PROVIDER *pro, AB_IMEXPORTER_CONTEXT *ctx);
00223
00230 AQBANKING_API
00231 int AB_Provider_ResetQueue(AB_PROVIDER *pro);
00232
00233
00238 AQBANKING_API
00239 int AB_Provider_ExtendUser(AB_PROVIDER *pro, AB_USER *u,
00240 AB_PROVIDER_EXTEND_MODE em);
00241
00242
00247 AQBANKING_API
00248 int AB_Provider_ExtendAccount(AB_PROVIDER *pro, AB_ACCOUNT *a,
00249 AB_PROVIDER_EXTEND_MODE em);
00250
00251
00258 AQBANKING_API
00259 int AB_Provider_Update(AB_PROVIDER *pro,
00260 GWEN_TYPE_UINT32 lastVersion,
00261 GWEN_TYPE_UINT32 currentVersion);
00262
00263
00272 AQBANKING_API
00273 void AB_Provider_SetInitFn(AB_PROVIDER *pro, AB_PROVIDER_INIT_FN f);
00274 AQBANKING_API
00275 void AB_Provider_SetFiniFn(AB_PROVIDER *pro, AB_PROVIDER_FINI_FN f);
00276
00277 AQBANKING_API
00278 void AB_Provider_SetUpdateJobFn(AB_PROVIDER *pro, AB_PROVIDER_UPDATEJOB_FN f);
00279 AQBANKING_API
00280 void AB_Provider_SetAddJobFn(AB_PROVIDER *pro, AB_PROVIDER_ADDJOB_FN f);
00281 AQBANKING_API
00282 void AB_Provider_SetExecuteFn(AB_PROVIDER *pro, AB_PROVIDER_EXECUTE_FN f);
00283 AQBANKING_API
00284 void AB_Provider_SetResetQueueFn(AB_PROVIDER *pro, AB_PROVIDER_RESETQUEUE_FN f);
00285
00286 AQBANKING_API
00287 void AB_Provider_SetExtendUserFn(AB_PROVIDER *pro,
00288 AB_PROVIDER_EXTEND_USER_FN f);
00289
00290 AQBANKING_API
00291 void AB_Provider_SetExtendAccountFn(AB_PROVIDER *pro,
00292 AB_PROVIDER_EXTEND_ACCOUNT_FN f);
00293
00294 AQBANKING_API
00295 void AB_Provider_SetUpdateFn(AB_PROVIDER *pro, AB_PROVIDER_UPDATE_FN f);
00296
00297
00301
00302
00303
00304 #ifdef __cplusplus
00305 }
00306 #endif
00307
00308
00309
00310
00311 #endif
00312
00313
00314
00315
00316
00317
00318
00319
00320