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
00027
00028 #ifdef __cplusplus
00029 extern "C" {
00030 #endif
00031
00032
00037
00042 typedef enum {
00045 AB_ProviderExtendMode_Create=0,
00047 AB_ProviderExtendMode_Extend,
00051 AB_ProviderExtendMode_Add,
00054 AB_ProviderExtendMode_Remove,
00061 AB_ProviderExtendMode_Save
00062 } AB_PROVIDER_EXTEND_MODE;
00063
00064
00072 typedef int (*AB_PROVIDER_INIT_FN)(AB_PROVIDER *pro, GWEN_DB_NODE *dbData);
00073
00077 typedef int (*AB_PROVIDER_FINI_FN)(AB_PROVIDER *pro, GWEN_DB_NODE *dbData);
00078
00082 typedef int (*AB_PROVIDER_UPDATEJOB_FN)(AB_PROVIDER *pro, AB_JOB *j,
00083 uint32_t guiid);
00084
00088 typedef int (*AB_PROVIDER_ADDJOB_FN)(AB_PROVIDER *pro, AB_JOB *j,
00089 uint32_t guiid);
00090
00094 typedef int (*AB_PROVIDER_EXECUTE_FN)(AB_PROVIDER *pro,
00095 AB_IMEXPORTER_CONTEXT *ctx,
00096 uint32_t guiid);
00097
00098
00102 typedef int (*AB_PROVIDER_RESETQUEUE_FN)(AB_PROVIDER *pro);
00103
00104
00108 typedef int (*AB_PROVIDER_EXTEND_USER_FN)(AB_PROVIDER *pro, AB_USER *u,
00109 AB_PROVIDER_EXTEND_MODE um);
00110
00111
00115 typedef int (*AB_PROVIDER_EXTEND_ACCOUNT_FN)(AB_PROVIDER *pro,
00116 AB_ACCOUNT *a,
00117 AB_PROVIDER_EXTEND_MODE um);
00118
00119 typedef int (*AB_PROVIDER_UPDATE_FN)(AB_PROVIDER *pro,
00120 uint32_t lastVersion,
00121 uint32_t currentVersion);
00122
00123
00130 AQBANKING_API
00131 AB_PROVIDER *AB_Provider_new(AB_BANKING *ab,
00132 const char *name);
00133
00137 AQBANKING_API
00138 int AB_Provider_IsInit(const AB_PROVIDER *pro);
00139
00140
00145
00153 AQBANKING_API
00154 int AB_Provider_Init(AB_PROVIDER *pro);
00155
00163 AQBANKING_API
00164 int AB_Provider_Fini(AB_PROVIDER *pro);
00165
00178 AQBANKING_API
00179 int AB_Provider_UpdateJob(AB_PROVIDER *pro, AB_JOB *j, uint32_t guiid);
00180
00202 AQBANKING_API
00203 int AB_Provider_AddJob(AB_PROVIDER *pro, AB_JOB *j, uint32_t guiid);
00204
00212 AQBANKING_API
00213 int AB_Provider_Execute(AB_PROVIDER *pro, AB_IMEXPORTER_CONTEXT *ctx,
00214 uint32_t guiid);
00215
00222 AQBANKING_API
00223 int AB_Provider_ResetQueue(AB_PROVIDER *pro);
00224
00225
00230 AQBANKING_API
00231 int AB_Provider_ExtendUser(AB_PROVIDER *pro, AB_USER *u,
00232 AB_PROVIDER_EXTEND_MODE em);
00233
00234
00239 AQBANKING_API
00240 int AB_Provider_ExtendAccount(AB_PROVIDER *pro, AB_ACCOUNT *a,
00241 AB_PROVIDER_EXTEND_MODE em);
00242
00243
00250 AQBANKING_API
00251 int AB_Provider_Update(AB_PROVIDER *pro,
00252 uint32_t lastVersion,
00253 uint32_t currentVersion);
00254
00255
00264 AQBANKING_API
00265 void AB_Provider_SetInitFn(AB_PROVIDER *pro, AB_PROVIDER_INIT_FN f);
00266 AQBANKING_API
00267 void AB_Provider_SetFiniFn(AB_PROVIDER *pro, AB_PROVIDER_FINI_FN f);
00268
00269 AQBANKING_API
00270 void AB_Provider_SetUpdateJobFn(AB_PROVIDER *pro, AB_PROVIDER_UPDATEJOB_FN f);
00271 AQBANKING_API
00272 void AB_Provider_SetAddJobFn(AB_PROVIDER *pro, AB_PROVIDER_ADDJOB_FN f);
00273 AQBANKING_API
00274 void AB_Provider_SetExecuteFn(AB_PROVIDER *pro, AB_PROVIDER_EXECUTE_FN f);
00275 AQBANKING_API
00276 void AB_Provider_SetResetQueueFn(AB_PROVIDER *pro, AB_PROVIDER_RESETQUEUE_FN f);
00277
00278 AQBANKING_API
00279 void AB_Provider_SetExtendUserFn(AB_PROVIDER *pro,
00280 AB_PROVIDER_EXTEND_USER_FN f);
00281
00282 AQBANKING_API
00283 void AB_Provider_SetExtendAccountFn(AB_PROVIDER *pro,
00284 AB_PROVIDER_EXTEND_ACCOUNT_FN f);
00285
00286 AQBANKING_API
00287 void AB_Provider_SetUpdateFn(AB_PROVIDER *pro, AB_PROVIDER_UPDATE_FN f);
00288
00289
00295 typedef AB_PROVIDER* (*AB_PLUGIN_PROVIDER_FACTORY_FN)(GWEN_PLUGIN *pl,
00296 AB_BANKING *ab);
00297
00298
00299 AQBANKING_API
00300 GWEN_PLUGIN *AB_Plugin_Provider_new(GWEN_PLUGIN_MANAGER *pm,
00301 const char *name,
00302 const char *fileName);
00303
00304
00305 AQBANKING_API
00306 AB_PROVIDER *AB_Plugin_Provider_Factory(GWEN_PLUGIN *pl, AB_BANKING *ab);
00307
00308 AQBANKING_API
00309 void AB_Plugin_Provider_SetFactoryFn(GWEN_PLUGIN *pl,
00310 AB_PLUGIN_PROVIDER_FACTORY_FN fn);
00311
00312
00313
00314
00316
00317
00318 #ifdef __cplusplus
00319 }
00320 #endif
00321
00322
00323
00324
00325 #endif
00326
00327
00328
00329
00330
00331
00332
00333
00334