aqbanking 5.0.14
provider_be.h
Go to the documentation of this file.
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