devicemanager_l.h

Go to the documentation of this file.
00001 /***************************************************************************
00002  $RCSfile$
00003                              -------------------
00004     cvs         : $Id: devicemanager_l.h 388 2007-05-02 19:24:12Z christian $
00005     begin       : Mon Mar 01 2004
00006     copyright   : (C) 2004 by Martin Preuss
00007     email       : martin@libchipcard.de
00008 
00009  ***************************************************************************
00010  *          Please see toplevel file COPYING for license details           *
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 <chipcard3/chipcard3.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                                        GWEN_TYPE_UINT32 rid);
00056 void LCDM_DeviceManager_EndUseReader(LCDM_DEVICEMANAGER *dm,
00057                                      GWEN_TYPE_UINT32 rid);
00058 
00059 LC_READER_STATUS LCDM_DeviceManager_GetReaderStatus(LCDM_DEVICEMANAGER *dm,
00060                                                     GWEN_TYPE_UINT32 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                                       GWEN_TYPE_UINT32 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                                      GWEN_TYPE_UINT32 rid,
00092                                      const char *name,
00093                                      GWEN_DB_NODE *dbReq);
00094 
00095 GWEN_TYPE_UINT32 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                                     GWEN_TYPE_UINT32 rid,
00110                                     int slot);
00111 
00112 void LCDM_DeviceManager_ClientDown(LCDM_DEVICEMANAGER *dm,
00113                                    GWEN_TYPE_UINT32 clid);
00114 
00115 
00116 GWEN_TYPE_UINT32 LCDM_DeviceManager_LockReader(LCDM_DEVICEMANAGER *dm,
00117                                                GWEN_TYPE_UINT32 rid,
00118                                                GWEN_TYPE_UINT32 clid,
00119                                                int maxLockTime,
00120                                                int maxLockCount);
00121 int LCDM_DeviceManager_CheckLockReaderRequest(LCDM_DEVICEMANAGER *dm,
00122                                               GWEN_TYPE_UINT32 rid,
00123                                               GWEN_TYPE_UINT32 rqid);
00124 int LCDM_DeviceManager_RemoveLockReaderRequest(LCDM_DEVICEMANAGER *dm,
00125                                                GWEN_TYPE_UINT32 rid,
00126                                                GWEN_TYPE_UINT32 rqid);
00127 
00128 int LCDM_DeviceManager_CheckLockReaderAccess(LCDM_DEVICEMANAGER *dm,
00129                                              GWEN_TYPE_UINT32 rid,
00130                                              GWEN_TYPE_UINT32 rqid);
00131 
00132 int LCDM_DeviceManager_UnlockReader(LCDM_DEVICEMANAGER *dm,
00133                                     GWEN_TYPE_UINT32 rid,
00134                                     GWEN_TYPE_UINT32 rqid);
00135 
00136 int LCDM_DeviceManager_SuspendReaderCheck(LCDM_DEVICEMANAGER *dm,
00137                                           GWEN_TYPE_UINT32 rid);
00138 
00139 void LCDM_DeviceManager_ResumeReaderCheck(LCDM_DEVICEMANAGER *dm,
00140                                           GWEN_TYPE_UINT32 rid);
00141 
00142 GWEN_TYPE_UINT32
00143   LCDM_DeviceManager_SendReaderCommand(LCDM_DEVICEMANAGER *dm,
00144                                        GWEN_TYPE_UINT32 readerId,
00145                                        GWEN_DB_NODE *dbCmd);
00146 
00147 void LCDM_DeviceManager_TriggerHwScan(LCDM_DEVICEMANAGER *dm);
00148 
00149 
00150 #endif /* CHIPCARD_SERVER_DEVICEMANAGER_L_H */
00151 
00152 
00153 

Generated on Sat Sep 22 04:43:21 2007 for libchipcard2 by  doxygen 1.5.3