00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00019 #ifndef AQBANKING_PROVIDER_BE_H
00020 #define AQBANKING_PROVIDER_BE_H
00021
00022 #include <aqbanking/provider.h>
00023 #include <aqbanking/user.h>
00024
00025
00026 #ifdef __cplusplus
00027 extern "C" {
00028 #endif
00029
00030
00035
00049 typedef AB_PROVIDER* (*AB_PROVIDER_FACTORY_FN)(AB_BANKING *ab);
00050
00055 typedef enum {
00058 AB_ProviderExtendMode_Create=0,
00060 AB_ProviderExtendMode_Extend,
00064 AB_ProviderExtendMode_Add,
00067 AB_ProviderExtendMode_Remove,
00074 AB_ProviderExtendMode_Save
00075 } AB_PROVIDER_EXTEND_MODE;
00076
00077
00085 typedef int (*AB_PROVIDER_INIT_FN)(AB_PROVIDER *pro, GWEN_DB_NODE *dbData);
00086
00090 typedef int (*AB_PROVIDER_FINI_FN)(AB_PROVIDER *pro, GWEN_DB_NODE *dbData);
00091
00095 typedef int (*AB_PROVIDER_UPDATEJOB_FN)(AB_PROVIDER *pro, AB_JOB *j,
00096 uint32_t guiid);
00097
00101 typedef int (*AB_PROVIDER_ADDJOB_FN)(AB_PROVIDER *pro, AB_JOB *j,
00102 uint32_t guiid);
00103
00107 typedef int (*AB_PROVIDER_EXECUTE_FN)(AB_PROVIDER *pro,
00108 AB_IMEXPORTER_CONTEXT *ctx,
00109 uint32_t guiid);
00110
00111
00115 typedef int (*AB_PROVIDER_RESETQUEUE_FN)(AB_PROVIDER *pro);
00116
00117
00121 typedef int (*AB_PROVIDER_EXTEND_USER_FN)(AB_PROVIDER *pro, AB_USER *u,
00122 AB_PROVIDER_EXTEND_MODE um);
00123
00124
00128 typedef int (*AB_PROVIDER_EXTEND_ACCOUNT_FN)(AB_PROVIDER *pro,
00129 AB_ACCOUNT *a,
00130 AB_PROVIDER_EXTEND_MODE um);
00131
00132 typedef int (*AB_PROVIDER_UPDATE_FN)(AB_PROVIDER *pro,
00133 uint32_t lastVersion,
00134 uint32_t currentVersion);
00135
00136
00143 AQBANKING_API
00144 AB_PROVIDER *AB_Provider_new(AB_BANKING *ab,
00145 const char *name);
00146
00150 AQBANKING_API
00151 int AB_Provider_IsInit(const AB_PROVIDER *pro);
00152
00153
00158
00166 AQBANKING_API
00167 int AB_Provider_Init(AB_PROVIDER *pro);
00168
00176 AQBANKING_API
00177 int AB_Provider_Fini(AB_PROVIDER *pro);
00178
00191 AQBANKING_API
00192 int AB_Provider_UpdateJob(AB_PROVIDER *pro, AB_JOB *j, uint32_t guiid);
00193
00215 AQBANKING_API
00216 int AB_Provider_AddJob(AB_PROVIDER *pro, AB_JOB *j, uint32_t guiid);
00217
00225 AQBANKING_API
00226 int AB_Provider_Execute(AB_PROVIDER *pro, AB_IMEXPORTER_CONTEXT *ctx,
00227 uint32_t guiid);
00228
00235 AQBANKING_API
00236 int AB_Provider_ResetQueue(AB_PROVIDER *pro);
00237
00238
00243 AQBANKING_API
00244 int AB_Provider_ExtendUser(AB_PROVIDER *pro, AB_USER *u,
00245 AB_PROVIDER_EXTEND_MODE em);
00246
00247
00252 AQBANKING_API
00253 int AB_Provider_ExtendAccount(AB_PROVIDER *pro, AB_ACCOUNT *a,
00254 AB_PROVIDER_EXTEND_MODE em);
00255
00256
00263 AQBANKING_API
00264 int AB_Provider_Update(AB_PROVIDER *pro,
00265 uint32_t lastVersion,
00266 uint32_t currentVersion);
00267
00268
00277 AQBANKING_API
00278 void AB_Provider_SetInitFn(AB_PROVIDER *pro, AB_PROVIDER_INIT_FN f);
00279 AQBANKING_API
00280 void AB_Provider_SetFiniFn(AB_PROVIDER *pro, AB_PROVIDER_FINI_FN f);
00281
00282 AQBANKING_API
00283 void AB_Provider_SetUpdateJobFn(AB_PROVIDER *pro, AB_PROVIDER_UPDATEJOB_FN f);
00284 AQBANKING_API
00285 void AB_Provider_SetAddJobFn(AB_PROVIDER *pro, AB_PROVIDER_ADDJOB_FN f);
00286 AQBANKING_API
00287 void AB_Provider_SetExecuteFn(AB_PROVIDER *pro, AB_PROVIDER_EXECUTE_FN f);
00288 AQBANKING_API
00289 void AB_Provider_SetResetQueueFn(AB_PROVIDER *pro, AB_PROVIDER_RESETQUEUE_FN f);
00290
00291 AQBANKING_API
00292 void AB_Provider_SetExtendUserFn(AB_PROVIDER *pro,
00293 AB_PROVIDER_EXTEND_USER_FN f);
00294
00295 AQBANKING_API
00296 void AB_Provider_SetExtendAccountFn(AB_PROVIDER *pro,
00297 AB_PROVIDER_EXTEND_ACCOUNT_FN f);
00298
00299 AQBANKING_API
00300 void AB_Provider_SetUpdateFn(AB_PROVIDER *pro, AB_PROVIDER_UPDATE_FN f);
00301
00302
00306
00307
00308
00309 #ifdef __cplusplus
00310 }
00311 #endif
00312
00313
00314
00315
00316 #endif
00317
00318
00319
00320
00321
00322
00323
00324
00325