00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014 #ifndef CHIPCARD_SERVER_DM_READER_L_H
00015 #define CHIPCARD_SERVER_DM_READER_L_H
00016
00017
00018 typedef struct LCDM_READER LCDM_READER;
00019
00020 #include <gwenhywfar/db.h>
00021 #include <gwenhywfar/misc.h>
00022
00023 #include <chipcard2/chipcard2.h>
00024 #include "common/devmonitor.h"
00025 #include "lockmanager_l.h"
00026
00027 #include <time.h>
00028
00029
00030 GWEN_LIST_FUNCTION_DEFS(LCDM_READER, LCDM_Reader);
00031
00032 #include <chipcard2/chipcard2.h>
00033 #include "devicemanager_l.h"
00034 #include "dm_driver_l.h"
00035 #include "dm_slot_l.h"
00036
00037
00038 LCDM_READER *LCDM_Reader_new(LCDM_DRIVER *d, int slots);
00039 void LCDM_Reader_free(LCDM_READER *r);
00040 void LCDM_Reader_Attach(LCDM_READER *r);
00041
00042 LCDM_READER *LCDM_Reader_fromDb(LCDM_DRIVER *d, GWEN_DB_NODE *db);
00043 void LCDM_Reader_toDb(const LCDM_READER *r, GWEN_DB_NODE *db);
00044
00045 LCDM_DRIVER *LCDM_Reader_GetDriver(const LCDM_READER *r);
00046
00047 const char *LCDM_Reader_GetReaderType(const LCDM_READER *r);
00048 void LCDM_Reader_SetReaderType(LCDM_READER *r, const char *s);
00049
00050 const char *LCDM_Reader_GetReaderName(const LCDM_READER *r);
00051 void LCDM_Reader_SetReaderName(LCDM_READER *r, const char *s);
00052
00053
00054 const char *LCDM_Reader_GetReaderInfo(const LCDM_READER *r);
00055 void LCDM_Reader_SetReaderInfo(LCDM_READER *r, const char *s);
00056
00057 GWEN_TYPE_UINT32 LCDM_Reader_GetReaderId(const LCDM_READER *r);
00058
00059 GWEN_TYPE_UINT32 LCDM_Reader_GetDriversReaderId(const LCDM_READER *r);
00060 void LCDM_Reader_SetDriversReaderId(LCDM_READER *r, GWEN_TYPE_UINT32 id);
00061
00062 LC_READER_STATUS LCDM_Reader_GetStatus(const LCDM_READER *r);
00063 void LCDM_Reader_SetStatus(LCDM_READER *r, LC_READER_STATUS st);
00064
00065 int LCDM_Reader_IsAvailable(const LCDM_READER *r);
00066 void LCDM_Reader_SetIsAvailable(LCDM_READER *r, int i);
00067
00068 time_t LCDM_Reader_GetLastStatusChangeTime(const LCDM_READER *r);
00069 time_t LCDM_Reader_GetIdleSince(const LCDM_READER *r);
00070
00071 void LCDM_Reader_SetTimeout(LCDM_READER *r, int secs);
00072 int LCDM_Reader_CheckTimeout(const LCDM_READER *r);
00073
00074 GWEN_TYPE_UINT32 LCDM_Reader_GetUsageCount(const LCDM_READER *r);
00075 void LCDM_Reader_IncUsageCount(LCDM_READER *r, int count);
00076 void LCDM_Reader_DecUsageCount(LCDM_READER *r, int count);
00077
00078 unsigned int LCDM_Reader_GetSlots(const LCDM_READER *r);
00079 void LCDM_Reader_SetSlots(LCDM_READER *r, unsigned int i);
00080
00081 unsigned int LCDM_Reader_GetPort(const LCDM_READER *r);
00082 void LCDM_Reader_SetPort(LCDM_READER *r, unsigned int i);
00083
00084 unsigned int LCDM_Reader_GetCtn(const LCDM_READER *r);
00085 void LCDM_Reader_SetCtn(LCDM_READER *r, unsigned int i);
00086
00087 const char *LCDM_Reader_GetShortDescr(const LCDM_READER *r);
00088 void LCDM_Reader_SetShortDescr(LCDM_READER *r, const char *s);
00089
00090 GWEN_TYPE_UINT32 LCDM_Reader_GetFlags(const LCDM_READER *r);
00091 void LCDM_Reader_SetFlags(LCDM_READER *r, GWEN_TYPE_UINT32 f);
00092 void LCDM_Reader_AddFlags(LCDM_READER *r, GWEN_TYPE_UINT32 f);
00093 void LCDM_Reader_SubFlags(LCDM_READER *r, GWEN_TYPE_UINT32 f);
00094
00095 LC_DEVICE_BUSTYPE LCDM_Reader_GetBusType(const LCDM_READER *r);
00096 void LCDM_Reader_SetBusType(LCDM_READER *r, LC_DEVICE_BUSTYPE i);
00097 GWEN_TYPE_UINT32 LCDM_Reader_GetVendorId(const LCDM_READER *r);
00098 void LCDM_Reader_SetVendorId(LCDM_READER *r, GWEN_TYPE_UINT32 i);
00099 GWEN_TYPE_UINT32 LCDM_Reader_GetProductId(const LCDM_READER *r);
00100 void LCDM_Reader_SetProductId(LCDM_READER *r, GWEN_TYPE_UINT32 i);
00101 GWEN_TYPE_UINT32 LCDM_Reader_GetBusId(const LCDM_READER *r);
00102 void LCDM_Reader_SetBusId(LCDM_READER *r, GWEN_TYPE_UINT32 i);
00103 GWEN_TYPE_UINT32 LCDM_Reader_GetDeviceId(const LCDM_READER *r);
00104 void LCDM_Reader_SetDeviceId(LCDM_READER *r, GWEN_TYPE_UINT32 i);
00105
00106 GWEN_TYPE_UINT32 LCDM_Reader_GetCurrentRequestId(const LCDM_READER *r);
00107 void LCDM_Reader_SetCurrentRequestId(LCDM_READER *r, GWEN_TYPE_UINT32 rid);
00108
00109
00110 void LCDM_Reader_Dump(const LCDM_READER *r, FILE *f, int indent);
00111
00112
00113 LCS_LOCKMANAGER *LCDM_Reader_GetLockManager(const LCDM_READER *r, int slot);
00114
00115 GWEN_TYPE_UINT32 LCDM_Reader_LockReader(LCDM_READER *r,
00116 GWEN_TYPE_UINT32 clid,
00117 int maxLockTime,
00118 int maxLockCount);
00119 int LCDM_Reader_CheckLockRequest(LCDM_READER *r,
00120 GWEN_TYPE_UINT32 reqid);
00121 int LCDM_Reader_RemoveLockRequest(LCDM_READER *r,
00122 GWEN_TYPE_UINT32 rqid);
00123
00124 int LCDM_Reader_CheckLockAccess(LCDM_READER *r,
00125 GWEN_TYPE_UINT32 rqid);
00126
00127 int LCDM_Reader_Unlock(LCDM_READER *r, GWEN_TYPE_UINT32 rqid);
00128
00129
00130
00131
00132
00133 #endif
00134
00135