00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015 #ifndef CHIPCARD_SERVER_COMMON_READER_H
00016 #define CHIPCARD_SERVER_COMMON_READER_H
00017
00018 #include "common/devmonitor.h"
00019
00020 #include <gwenhywfar/buffer.h>
00021 #include <gwenhywfar/misc.h>
00022 #include <gwenhywfar/inherit.h>
00023 #include <gwenhywfar/list2.h>
00024 #include <gwenhywfar/stringlist.h>
00025 #include <gwenhywfar/db.h>
00026
00027 #include <time.h>
00028 #include <stdio.h>
00029
00030
00031 typedef struct LCCO_READER LCCO_READER;
00032
00033
00034 GWEN_LIST_FUNCTION_DEFS(LCCO_READER, LCCO_Reader)
00035 GWEN_LIST2_FUNCTION_DEFS(LCCO_READER, LCCO_Reader)
00036 GWEN_INHERIT_FUNCTION_DEFS(LCCO_READER)
00037
00038
00039 #include <chipcard/chipcard.h>
00040
00041
00042 typedef enum {
00043 LCCO_Reader_AddressPort=0,
00044 LCCO_Reader_AddressDevicePath,
00045 LCCO_Reader_AddressUnknown=-1
00046 } LCCO_READER_ADDRESS;
00047
00048 LCCO_READER_ADDRESS LCCO_ReaderAddress_fromString(const char *s);
00049 const char *LCCO_ReaderAddress_toString(LCCO_READER_ADDRESS at);
00050
00051
00052 LCCO_READER *LCCO_Reader_new();
00053 LCCO_READER *LCCO_Reader_dup(const LCCO_READER *r);
00054 void LCCO_Reader_free(LCCO_READER *r);
00055 void LCCO_Reader_Attach(LCCO_READER *r);
00056
00057 void LCCO_Reader_List2_freeAll(LCCO_READER_LIST2 *rl);
00058
00059 LCCO_READER *LCCO_Reader_fromDb(GWEN_DB_NODE *db);
00060 void LCCO_Reader_toDb(const LCCO_READER *r, GWEN_DB_NODE *db);
00061
00062 LCCO_READER_ADDRESS LCCO_Reader_GetAddressType(const LCCO_READER *r);
00063 void LCCO_Reader_SetAddressType(LCCO_READER *r, LCCO_READER_ADDRESS a);
00064
00065 const char *LCCO_Reader_GetReaderType(const LCCO_READER *r);
00066 void LCCO_Reader_SetReaderType(LCCO_READER *r, const char *s);
00067
00068 const char *LCCO_Reader_GetReaderName(const LCCO_READER *r);
00069 void LCCO_Reader_SetReaderName(LCCO_READER *r, const char *s);
00070
00071
00072 const char *LCCO_Reader_GetDriverName(const LCCO_READER *r);
00073 void LCCO_Reader_SetDriverName(LCCO_READER *r, const char *s);
00074
00075 const char *LCCO_Reader_GetReaderInfo(const LCCO_READER *r);
00076 void LCCO_Reader_SetReaderInfo(LCCO_READER *r, const char *s);
00077
00078 uint32_t LCCO_Reader_GetReaderId(const LCCO_READER *r);
00079 void LCCO_Reader_SetReaderId(LCCO_READER *r, uint32_t id);
00080
00081 uint32_t LCCO_Reader_GetDriversReaderId(const LCCO_READER *r);
00082 void LCCO_Reader_SetDriversReaderId(LCCO_READER *r, uint32_t id);
00083
00084 LC_READER_STATUS LCCO_Reader_GetStatus(const LCCO_READER *r);
00085 void LCCO_Reader_SetStatus(LCCO_READER *r, LC_READER_STATUS st);
00086
00087 int LCCO_Reader_IsAvailable(const LCCO_READER *r);
00088 void LCCO_Reader_SetIsAvailable(LCCO_READER *r, int i);
00089
00090 time_t LCCO_Reader_GetLastStatusChangeTime(const LCCO_READER *r);
00091
00092 unsigned int LCCO_Reader_GetSlots(const LCCO_READER *r);
00093 void LCCO_Reader_SetSlots(LCCO_READER *r, unsigned int i);
00094
00095 unsigned int LCCO_Reader_GetPort(const LCCO_READER *r);
00096 void LCCO_Reader_SetPort(LCCO_READER *r, unsigned int i);
00097
00098 unsigned int LCCO_Reader_GetCtn(const LCCO_READER *r);
00099 void LCCO_Reader_SetCtn(LCCO_READER *r, unsigned int i);
00100
00101 const char *LCCO_Reader_GetShortDescr(const LCCO_READER *r);
00102 void LCCO_Reader_SetShortDescr(LCCO_READER *r, const char *s);
00103
00104 uint32_t LCCO_Reader_GetFlags(const LCCO_READER *r);
00105 void LCCO_Reader_SetFlags(LCCO_READER *r, uint32_t f);
00106 void LCCO_Reader_AddFlags(LCCO_READER *r, uint32_t f);
00107 void LCCO_Reader_SubFlags(LCCO_READER *r, uint32_t f);
00108
00109 LC_DEVICE_BUSTYPE LCCO_Reader_GetBusType(const LCCO_READER *r);
00110 void LCCO_Reader_SetBusType(LCCO_READER *r, LC_DEVICE_BUSTYPE i);
00111 uint32_t LCCO_Reader_GetVendorId(const LCCO_READER *r);
00112 void LCCO_Reader_SetVendorId(LCCO_READER *r, uint32_t i);
00113 uint32_t LCCO_Reader_GetProductId(const LCCO_READER *r);
00114 void LCCO_Reader_SetProductId(LCCO_READER *r, uint32_t i);
00115 uint32_t LCCO_Reader_GetBusId(const LCCO_READER *r);
00116 void LCCO_Reader_SetBusId(LCCO_READER *r, uint32_t i);
00117 uint32_t LCCO_Reader_GetDeviceId(const LCCO_READER *r);
00118 void LCCO_Reader_SetDeviceId(LCCO_READER *r, uint32_t i);
00119
00120 int LCCO_Reader_GetUsbClass(const LCCO_READER *r);
00121 void LCCO_Reader_SetUsbClass(LCCO_READER *r, int i);
00122
00123 const char *LCCO_Reader_GetDevicePath(const LCCO_READER *r);
00124 void LCCO_Reader_SetDevicePath(LCCO_READER *r, const char *s);
00125
00126
00127 const char *LCCO_Reader_GetDevicePathTmpl(const LCCO_READER *r);
00128 void LCCO_Reader_SetDevicePathTmpl(LCCO_READER *r, const char *s);
00129
00130
00131 void LCCO_Reader_Dump(const LCCO_READER *r, FILE *f, int indent);
00132
00133 #endif
00134
00135