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 #include <gwenhywfar/plugin.h>
00026 #include <gwenhywfar/db.h>
00027
00028
00029 #ifdef __cplusplus
00030 extern "C" {
00031 #endif
00032
00033
00038
00043 typedef enum {
00046 AB_ProviderExtendMode_Create=0,
00048 AB_ProviderExtendMode_Extend,
00052 AB_ProviderExtendMode_Add,
00055 AB_ProviderExtendMode_Remove,
00062 AB_ProviderExtendMode_Save,
00063
00067 AB_ProviderExtendMode_Reload
00068 } AB_PROVIDER_EXTEND_MODE;
00069
00070
00078 typedef int (*AB_PROVIDER_INIT_FN)(AB_PROVIDER *pro, GWEN_DB_NODE *dbData);
00079
00083 typedef int (*AB_PROVIDER_FINI_FN)(AB_PROVIDER *pro, GWEN_DB_NODE *dbData);
00084
00088 typedef int (*AB_PROVIDER_UPDATEJOB_FN)(AB_PROVIDER *pro, AB_JOB *j,
00089 uint32_t guiid);
00090
00094 typedef int (*AB_PROVIDER_ADDJOB_FN)(AB_PROVIDER *pro, AB_JOB *j,
00095 uint32_t guiid);
00096
00100 typedef int (*AB_PROVIDER_EXECUTE_FN)(AB_PROVIDER *pro,
00101 AB_IMEXPORTER_CONTEXT *ctx,
00102 uint32_t guiid);
00103
00104
00108 typedef int (*AB_PROVIDER_RESETQUEUE_FN)(AB_PROVIDER *pro);
00109
00110
00114 typedef int (*AB_PROVIDER_EXTEND_USER_FN)(AB_PROVIDER *pro, AB_USER *u,
00115 AB_PROVIDER_EXTEND_MODE um,
00116 GWEN_DB_NODE *db);
00117
00118
00122 typedef int (*AB_PROVIDER_EXTEND_ACCOUNT_FN)(AB_PROVIDER *pro,
00123 AB_ACCOUNT *a,
00124 AB_PROVIDER_EXTEND_MODE um,
00125 GWEN_DB_NODE *db);
00126
00127 typedef int (*AB_PROVIDER_UPDATE_FN)(AB_PROVIDER *pro,
00128 uint32_t lastVersion,
00129 uint32_t currentVersion);
00130
00131
00138 AQBANKING_API
00139 AB_PROVIDER *AB_Provider_new(AB_BANKING *ab,
00140 const char *name);
00141
00145 AQBANKING_API
00146 int AB_Provider_IsInit(const AB_PROVIDER *pro);
00147
00148
00153
00161 AQBANKING_API
00162 int AB_Provider_Init(AB_PROVIDER *pro, uint32_t guiid);
00163
00171 AQBANKING_API
00172 int AB_Provider_Fini(AB_PROVIDER *pro, uint32_t guiid);
00173
00186 AQBANKING_API
00187 int AB_Provider_UpdateJob(AB_PROVIDER *pro, AB_JOB *j, uint32_t guiid);
00188
00210 AQBANKING_API
00211 int AB_Provider_AddJob(AB_PROVIDER *pro, AB_JOB *j, uint32_t guiid);
00212
00220 AQBANKING_API
00221 int AB_Provider_Execute(AB_PROVIDER *pro, AB_IMEXPORTER_CONTEXT *ctx,
00222 uint32_t guiid);
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 GWEN_DB_NODE *db);
00242
00243
00248 AQBANKING_API
00249 int AB_Provider_ExtendAccount(AB_PROVIDER *pro, AB_ACCOUNT *a,
00250 AB_PROVIDER_EXTEND_MODE em,
00251 GWEN_DB_NODE *db);
00252
00253
00260 AQBANKING_API
00261 int AB_Provider_Update(AB_PROVIDER *pro,
00262 uint32_t lastVersion,
00263 uint32_t currentVersion);
00264
00265
00274 AQBANKING_API
00275 void AB_Provider_SetInitFn(AB_PROVIDER *pro, AB_PROVIDER_INIT_FN f);
00276 AQBANKING_API
00277 void AB_Provider_SetFiniFn(AB_PROVIDER *pro, AB_PROVIDER_FINI_FN f);
00278
00279 AQBANKING_API
00280 void AB_Provider_SetUpdateJobFn(AB_PROVIDER *pro, AB_PROVIDER_UPDATEJOB_FN f);
00281 AQBANKING_API
00282 void AB_Provider_SetAddJobFn(AB_PROVIDER *pro, AB_PROVIDER_ADDJOB_FN f);
00283 AQBANKING_API
00284 void AB_Provider_SetExecuteFn(AB_PROVIDER *pro, AB_PROVIDER_EXECUTE_FN f);
00285 AQBANKING_API
00286 void AB_Provider_SetResetQueueFn(AB_PROVIDER *pro, AB_PROVIDER_RESETQUEUE_FN f);
00287
00288 AQBANKING_API
00289 void AB_Provider_SetExtendUserFn(AB_PROVIDER *pro,
00290 AB_PROVIDER_EXTEND_USER_FN f);
00291
00292 AQBANKING_API
00293 void AB_Provider_SetExtendAccountFn(AB_PROVIDER *pro,
00294 AB_PROVIDER_EXTEND_ACCOUNT_FN f);
00295
00296 AQBANKING_API
00297 void AB_Provider_SetUpdateFn(AB_PROVIDER *pro, AB_PROVIDER_UPDATE_FN f);
00298
00299
00305 typedef AB_PROVIDER* (*AB_PLUGIN_PROVIDER_FACTORY_FN)(GWEN_PLUGIN *pl,
00306 AB_BANKING *ab);
00307
00308
00309 AQBANKING_API
00310 GWEN_PLUGIN *AB_Plugin_Provider_new(GWEN_PLUGIN_MANAGER *pm,
00311 const char *name,
00312 const char *fileName);
00313
00314
00315 AQBANKING_API
00316 AB_PROVIDER *AB_Plugin_Provider_Factory(GWEN_PLUGIN *pl, AB_BANKING *ab);
00317
00318 AQBANKING_API
00319 void AB_Plugin_Provider_SetFactoryFn(GWEN_PLUGIN *pl,
00320 AB_PLUGIN_PROVIDER_FACTORY_FN fn);
00321
00322
00323
00324
00326
00327
00328 #ifdef __cplusplus
00329 }
00330 #endif
00331
00332
00333
00334
00335 #endif
00336
00337
00338
00339
00340
00341
00342
00343
00344