aqbanking
5.0.22
|
00001 /*************************************************************************** 00002 begin : Mon Mar 01 2004 00003 copyright : (C) 2004-2010 by Martin Preuss 00004 email : martin@libchipcard.de 00005 00006 *************************************************************************** 00007 * This file is part of the project "AqBanking". * 00008 * Please see toplevel file COPYING of that project for license details. * 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 /* defgroup */ 00381 00382 00383 #ifdef __cplusplus 00384 } 00385 #endif 00386 00387 00388 00389 00390 #endif /* AQBANKING_PROVIDER_BE_H */ 00391 00392 00393 00394 00395 00396 00397 00398 00399