00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014 #ifndef CHIPCARD_SERVER_DEVICEMANAGER_L_H
00015 #define CHIPCARD_SERVER_DEVICEMANAGER_L_H
00016
00017
00018 #include <gwenhywfar/types.h>
00019 #include <gwenhywfar/ipc.h>
00020 #include <gwenhywfar/inherit.h>
00021 #include <gwenhywfar/stringlist.h>
00022
00023
00032 typedef struct LCDM_DEVICEMANAGER LCDM_DEVICEMANAGER;
00033
00034 GWEN_INHERIT_FUNCTION_DEFS(LCDM_DEVICEMANAGER)
00035
00036
00037 #include "server_l.h"
00038 #include "lockmanager_l.h"
00039 #include <chipcard/chipcard.h>
00040 #include "common/card.h"
00041 #include "common/devmonitor.h"
00042
00043
00044
00045 LCDM_DEVICEMANAGER *LCDM_DeviceManager_new(LCS_SERVER *server);
00046 void LCDM_DeviceManager_free(LCDM_DEVICEMANAGER *dm);
00047
00048 int LCDM_DeviceManager_Init(LCDM_DEVICEMANAGER *dm, GWEN_DB_NODE *dbConfig);
00049 int LCDM_DeviceManager_Fini(LCDM_DEVICEMANAGER *dm);
00050
00051 void LCDM_DeviceManager_BeginUseCard(LCDM_DEVICEMANAGER *dm, LCCO_CARD *cd);
00052 void LCDM_DeviceManager_EndUseCard(LCDM_DEVICEMANAGER *dm, LCCO_CARD *cd);
00053
00054 void LCDM_DeviceManager_BeginUseReader(LCDM_DEVICEMANAGER *dm,
00055 uint32_t rid);
00056 void LCDM_DeviceManager_EndUseReader(LCDM_DEVICEMANAGER *dm,
00057 uint32_t rid);
00058
00059 LC_READER_STATUS LCDM_DeviceManager_GetReaderStatus(LCDM_DEVICEMANAGER *dm,
00060 uint32_t rid);
00061
00065 void LCDM_DeviceManager_BeginUseReaders(LCDM_DEVICEMANAGER *dm);
00066 void LCDM_DeviceManager_EndUseReaders(LCDM_DEVICEMANAGER *dm, int count);
00067
00068
00069 void LCDM_DeviceManager_DriverIpcDown(LCDM_DEVICEMANAGER *dm,
00070 uint32_t ipcId);
00071
00076 int LCDM_DeviceManager_ListReaders(LCDM_DEVICEMANAGER *dm);
00077
00082 int LCDM_DeviceManager_ListDrivers(LCDM_DEVICEMANAGER *dm);
00083
00084
00088 int LCDM_DeviceManager_Work(LCDM_DEVICEMANAGER *dm);
00089
00090 int LCDM_DeviceManager_HandleRequest(LCDM_DEVICEMANAGER *dm,
00091 uint32_t rid,
00092 const char *name,
00093 GWEN_DB_NODE *dbReq);
00094
00095 uint32_t LCDM_DeviceManager_SendCardCommand(LCDM_DEVICEMANAGER *dm,
00096 LCCO_CARD *card,
00097 GWEN_DB_NODE *dbCmd);
00098
00099 const char *LCDM_DeviceManager_GetDriverVar(LCDM_DEVICEMANAGER *dm,
00100 LCCO_CARD *card,
00101 const char *vname);
00102
00103 void LCDM_DeviceManager_DumpState(const LCDM_DEVICEMANAGER *dm);
00104
00105
00106
00107 LCS_LOCKMANAGER*
00108 LCDM_DeviceManager_GetLockManager(const LCDM_DEVICEMANAGER *dm,
00109 uint32_t rid,
00110 int slot);
00111
00112 void LCDM_DeviceManager_ClientDown(LCDM_DEVICEMANAGER *dm,
00113 uint32_t clid);
00114
00115
00116 uint32_t LCDM_DeviceManager_LockReader(LCDM_DEVICEMANAGER *dm,
00117 uint32_t rid,
00118 uint32_t clid,
00119 int maxLockTime,
00120 int maxLockCount);
00121 int LCDM_DeviceManager_CheckLockReaderRequest(LCDM_DEVICEMANAGER *dm,
00122 uint32_t rid,
00123 uint32_t rqid);
00124 int LCDM_DeviceManager_RemoveLockReaderRequest(LCDM_DEVICEMANAGER *dm,
00125 uint32_t rid,
00126 uint32_t rqid);
00127
00128 int LCDM_DeviceManager_CheckLockReaderAccess(LCDM_DEVICEMANAGER *dm,
00129 uint32_t rid,
00130 uint32_t rqid);
00131
00132 int LCDM_DeviceManager_UnlockReader(LCDM_DEVICEMANAGER *dm,
00133 uint32_t rid,
00134 uint32_t rqid);
00135
00136 int LCDM_DeviceManager_SuspendReaderCheck(LCDM_DEVICEMANAGER *dm,
00137 uint32_t rid);
00138
00139 void LCDM_DeviceManager_ResumeReaderCheck(LCDM_DEVICEMANAGER *dm,
00140 uint32_t rid);
00141
00142 uint32_t
00143 LCDM_DeviceManager_SendReaderCommand(LCDM_DEVICEMANAGER *dm,
00144 uint32_t readerId,
00145 GWEN_DB_NODE *dbCmd);
00146
00147 void LCDM_DeviceManager_TriggerHwScan(LCDM_DEVICEMANAGER *dm);
00148
00149
00150 #endif
00151
00152
00153