00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00018
00019 #ifndef CHIPCARD_CLIENT_CLIENT_IMP_H
00020 #define CHIPCARD_CLIENT_CLIENT_IMP_H
00021
00022 #include "client.h"
00023
00024 #include <chipcard/client/notifications.h>
00025
00026 #include <gwenhywfar/db.h>
00027 #include <gwenhywfar/buffer.h>
00028
00029
00030 typedef
00031 LC_CLIENT_RESULT CHIPCARD_CB (*LC_CLIENT_INIT_FN)(LC_CLIENT *cl,
00032 GWEN_DB_NODE *dbConfig);
00033 typedef LC_CLIENT_RESULT CHIPCARD_CB (*LC_CLIENT_FINI_FN)(LC_CLIENT *cl);
00034
00035 typedef LC_CLIENT_RESULT CHIPCARD_CB (*LC_CLIENT_START_FN)(LC_CLIENT *cl);
00036 typedef LC_CLIENT_RESULT CHIPCARD_CB (*LC_CLIENT_STOP_FN)(LC_CLIENT *cl);
00037
00038 typedef
00039 LC_CLIENT_RESULT CHIPCARD_CB
00040 (*LC_CLIENT_SETNOTIFY_FN)(LC_CLIENT *cl,
00041 uint32_t flags);
00042
00043 typedef
00044 LC_CLIENT_RESULT CHIPCARD_CB (*LC_CLIENT_GETNEXTCARD_FN)(LC_CLIENT *cl,
00045 LC_CARD **pCard,
00046 int timeout);
00047 typedef
00048 LC_CLIENT_RESULT CHIPCARD_CB (*LC_CLIENT_RELEASECARD_FN)(LC_CLIENT *cl,
00049 LC_CARD *card);
00050 typedef
00051 LC_CLIENT_RESULT CHIPCARD_CB (*LC_CLIENT_EXECAPDU_FN)(LC_CLIENT *cl,
00052 LC_CARD *card,
00053 const char *apdu,
00054 unsigned int len,
00055 GWEN_BUFFER *rbuf,
00056 LC_CLIENT_CMDTARGET t,
00057 int timeout);
00058
00059 CHIPCARD_API
00060 LC_CLIENT *LC_BaseClient_new(const char *ioTypeName,
00061 const char *programName,
00062 const char *programVersion);
00063
00064 CHIPCARD_API
00065 GWEN_DB_NODE *LC_Client_GetConfig(const LC_CLIENT *cl);
00066
00067 CHIPCARD_API
00068 int LC_Client_GetReaderAndDriverType(const LC_CLIENT *cl,
00069 const char *readerName,
00070 GWEN_BUFFER *driverType,
00071 GWEN_BUFFER *readerType,
00072 uint32_t *pReaderFlags);
00073
00074
00075 CHIPCARD_API
00076 int LC_Client_HandleNotification(LC_CLIENT *cl, const LC_NOTIFICATION *n);
00077
00078 CHIPCARD_API
00079 LC_CLIENT_INIT_FN LC_Client_SetInitFn(LC_CLIENT *cl, LC_CLIENT_INIT_FN fn);
00080
00081 CHIPCARD_API
00082 LC_CLIENT_FINI_FN LC_Client_SetFiniFn(LC_CLIENT *cl, LC_CLIENT_FINI_FN fn);
00083
00084 CHIPCARD_API
00085 LC_CLIENT_SETNOTIFY_FN
00086 LC_Client_SetSetNotifyFn(LC_CLIENT *cl, LC_CLIENT_SETNOTIFY_FN fn);
00087
00088 CHIPCARD_API
00089 LC_CLIENT_START_FN LC_Client_SetStartFn(LC_CLIENT *cl, LC_CLIENT_START_FN fn);
00090
00091 CHIPCARD_API
00092 LC_CLIENT_STOP_FN LC_Client_SetStopFn(LC_CLIENT *cl, LC_CLIENT_STOP_FN fn);
00093
00094 CHIPCARD_API
00095 LC_CLIENT_GETNEXTCARD_FN
00096 LC_Client_SetGetNextCardFn(LC_CLIENT *cl, LC_CLIENT_GETNEXTCARD_FN fn);
00097
00098 CHIPCARD_API
00099 LC_CLIENT_RELEASECARD_FN
00100 LC_Client_SetReleaseCardFn(LC_CLIENT *cl, LC_CLIENT_RELEASECARD_FN fn);
00101
00102 CHIPCARD_API
00103 LC_CLIENT_EXECAPDU_FN
00104 LC_Client_SetExecApduFn(LC_CLIENT *cl, LC_CLIENT_EXECAPDU_FN fn);
00105
00106
00108
00109
00110 #endif
00111
00112
00113