00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00016 #ifndef AQBANKING_PROVIDER_BE_H
00017 #define AQBANKING_PROVIDER_BE_H
00018
00019 #include <aqbanking/provider.h>
00020 #include <aqbanking/user.h>
00021
00022 #include <gwenhywfar/plugin.h>
00023 #include <gwenhywfar/db.h>
00024 #include <gwenhywfar/dialog.h>
00025
00026
00027 #ifdef __cplusplus
00028 extern "C" {
00029 #endif
00030
00031
00036
00037
00038 #define AB_PROVIDER_FLAGS_HAS_NEWUSER_DIALOG 0x00000001
00039 #define AB_PROVIDER_FLAGS_HAS_EDITUSER_DIALOG 0x00000002
00040 #define AB_PROVIDER_FLAGS_HAS_NEWACCOUNT_DIALOG 0x00000004
00041 #define AB_PROVIDER_FLAGS_HAS_EDITACCOUNT_DIALOG 0x00000008
00042 #define AB_PROVIDER_FLAGS_HAS_USERTYPE_DIALOG 0x00000010
00043
00044
00049 typedef enum {
00052 AB_ProviderExtendMode_Create=0,
00054 AB_ProviderExtendMode_Extend,
00058 AB_ProviderExtendMode_Add,
00061 AB_ProviderExtendMode_Remove,
00068 AB_ProviderExtendMode_Save,
00069
00073 AB_ProviderExtendMode_Reload
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 GWEN_DB_NODE *db);
00120
00121
00125 typedef int (*AB_PROVIDER_EXTEND_ACCOUNT_FN)(AB_PROVIDER *pro,
00126 AB_ACCOUNT *a,
00127 AB_PROVIDER_EXTEND_MODE um,
00128 GWEN_DB_NODE *db);
00129
00130 typedef int (*AB_PROVIDER_UPDATE_FN)(AB_PROVIDER *pro,
00131 uint32_t lastVersion,
00132 uint32_t currentVersion);
00133
00134
00135 typedef GWEN_DIALOG* (*AB_PROVIDER_GET_NEWUSER_DIALOG_FN)(AB_PROVIDER *pro, int i);
00136
00137 typedef GWEN_DIALOG* (*AB_PROVIDER_GET_EDITUSER_DIALOG_FN)(AB_PROVIDER *pro, AB_USER *u);
00138
00139 typedef GWEN_DIALOG* (*AB_PROVIDER_GET_NEWACCOUNT_DIALOG_FN)(AB_PROVIDER *pro);
00140
00141 typedef GWEN_DIALOG* (*AB_PROVIDER_GET_EDITACCOUNT_DIALOG_FN)(AB_PROVIDER *pro, AB_ACCOUNT *a);
00142
00143 typedef GWEN_DIALOG* (*AB_PROVIDER_GET_USERTYPE_DIALOG_FN)(AB_PROVIDER *pro);
00144
00145
00152 AQBANKING_API
00153 AB_PROVIDER *AB_Provider_new(AB_BANKING *ab,
00154 const char *name);
00155
00159 AQBANKING_API
00160 int AB_Provider_IsInit(const AB_PROVIDER *pro);
00161
00162
00163 AQBANKING_API
00164 void AB_Provider_AddFlags(AB_PROVIDER *pro, uint32_t fl);
00165
00166
00171
00176 AQBANKING_API
00177 int AB_Provider_Init(AB_PROVIDER *pro);
00178
00183 AQBANKING_API
00184 int AB_Provider_Fini(AB_PROVIDER *pro);
00185
00198 AQBANKING_API
00199 int AB_Provider_UpdateJob(AB_PROVIDER *pro, AB_JOB *j);
00200
00222 AQBANKING_API
00223 int AB_Provider_AddJob(AB_PROVIDER *pro, AB_JOB *j);
00224
00232 AQBANKING_API
00233 int AB_Provider_Execute(AB_PROVIDER *pro, AB_IMEXPORTER_CONTEXT *ctx);
00234
00241 AQBANKING_API
00242 int AB_Provider_ResetQueue(AB_PROVIDER *pro);
00243
00244
00249 AQBANKING_API
00250 int AB_Provider_ExtendUser(AB_PROVIDER *pro, AB_USER *u,
00251 AB_PROVIDER_EXTEND_MODE em,
00252 GWEN_DB_NODE *db);
00253
00254
00259 AQBANKING_API
00260 int AB_Provider_ExtendAccount(AB_PROVIDER *pro, AB_ACCOUNT *a,
00261 AB_PROVIDER_EXTEND_MODE em,
00262 GWEN_DB_NODE *db);
00263
00264
00271 AQBANKING_API
00272 int AB_Provider_Update(AB_PROVIDER *pro,
00273 uint32_t lastVersion,
00274 uint32_t currentVersion);
00275
00276
00286 AQBANKING_API
00287 GWEN_DIALOG *AB_Provider_GetNewUserDialog(AB_PROVIDER *pro, int i);
00288
00289 AQBANKING_API
00290 GWEN_DIALOG *AB_Provider_GetEditUserDialog(AB_PROVIDER *pro, AB_USER *u);
00291
00296 AQBANKING_API
00297 GWEN_DIALOG *AB_Provider_GetNewAccountDialog(AB_PROVIDER *pro);
00298
00299 AQBANKING_API
00300 GWEN_DIALOG *AB_Provider_GetEditAccountDialog(AB_PROVIDER *pro, AB_ACCOUNT *a);
00301
00302
00303 AQBANKING_API
00304 GWEN_DIALOG *AB_ProviderGetUserTypeDialog(AB_PROVIDER *pro);
00305
00306
00315 AQBANKING_API
00316 void AB_Provider_SetInitFn(AB_PROVIDER *pro, AB_PROVIDER_INIT_FN f);
00317 AQBANKING_API
00318 void AB_Provider_SetFiniFn(AB_PROVIDER *pro, AB_PROVIDER_FINI_FN f);
00319
00320 AQBANKING_API
00321 void AB_Provider_SetUpdateJobFn(AB_PROVIDER *pro, AB_PROVIDER_UPDATEJOB_FN f);
00322 AQBANKING_API
00323 void AB_Provider_SetAddJobFn(AB_PROVIDER *pro, AB_PROVIDER_ADDJOB_FN f);
00324 AQBANKING_API
00325 void AB_Provider_SetExecuteFn(AB_PROVIDER *pro, AB_PROVIDER_EXECUTE_FN f);
00326 AQBANKING_API
00327 void AB_Provider_SetResetQueueFn(AB_PROVIDER *pro, AB_PROVIDER_RESETQUEUE_FN f);
00328
00329 AQBANKING_API
00330 void AB_Provider_SetExtendUserFn(AB_PROVIDER *pro,
00331 AB_PROVIDER_EXTEND_USER_FN f);
00332
00333 AQBANKING_API
00334 void AB_Provider_SetExtendAccountFn(AB_PROVIDER *pro,
00335 AB_PROVIDER_EXTEND_ACCOUNT_FN f);
00336
00337 AQBANKING_API
00338 void AB_Provider_SetUpdateFn(AB_PROVIDER *pro, AB_PROVIDER_UPDATE_FN f);
00339
00340 AQBANKING_API
00341 void AB_Provider_SetGetNewUserDialogFn(AB_PROVIDER *pro, AB_PROVIDER_GET_NEWUSER_DIALOG_FN f);
00342
00343 AQBANKING_API
00344 void AB_Provider_SetGetEditUserDialogFn(AB_PROVIDER *pro, AB_PROVIDER_GET_EDITUSER_DIALOG_FN f);
00345
00346 AQBANKING_API
00347 void AB_Provider_SetGetNewAccountDialogFn(AB_PROVIDER *pro, AB_PROVIDER_GET_NEWACCOUNT_DIALOG_FN f);
00348
00349 AQBANKING_API
00350 void AB_Provider_SetGetEditAccountDialogFn(AB_PROVIDER *pro, AB_PROVIDER_GET_EDITACCOUNT_DIALOG_FN f);
00351
00352 AQBANKING_API
00353 void AB_Provider_SetGetUserTypeDialogFn(AB_PROVIDER *pro, AB_PROVIDER_GET_USERTYPE_DIALOG_FN f);
00354
00360 typedef AB_PROVIDER* (*AB_PLUGIN_PROVIDER_FACTORY_FN)(GWEN_PLUGIN *pl,
00361 AB_BANKING *ab);
00362
00363
00364 AQBANKING_API
00365 GWEN_PLUGIN *AB_Plugin_Provider_new(GWEN_PLUGIN_MANAGER *pm,
00366 const char *name,
00367 const char *fileName);
00368
00369
00370 AQBANKING_API
00371 AB_PROVIDER *AB_Plugin_Provider_Factory(GWEN_PLUGIN *pl, AB_BANKING *ab);
00372
00373 AQBANKING_API
00374 void AB_Plugin_Provider_SetFactoryFn(GWEN_PLUGIN *pl,
00375 AB_PLUGIN_PROVIDER_FACTORY_FN fn);
00376
00377
00378
00379
00381
00382
00383 #ifdef __cplusplus
00384 }
00385 #endif
00386
00387
00388
00389
00390 #endif
00391
00392
00393
00394
00395
00396
00397
00398
00399