SmartCardManager.h

00001 
00008 // Revision $Revision: 129 $
00009 #pragma once
00010 #include "ManagerInterface.h"
00011 
00012 struct SmartCardManagerPriv;
00013 struct SmartCardConnectionPriv;
00014 
00015 struct SmartCardConnection : public ConnectionBase {
00016         SmartCardConnectionPriv *d;
00017         SmartCardConnection(int manager,ManagerInterface &iface,unsigned int index,
00018                 bool force,ManagerInterface &orig);
00019         ~SmartCardConnection();
00020 };
00021 
00023 
00026 class SmartCardManager : public ManagerInterface {
00027         SmartCardManagerPriv *d;
00028 
00029         void makeConnection(ConnectionBase *c,uint idx);
00030         void deleteConnection(ConnectionBase *c);
00031         void beginTransaction(ConnectionBase *c);
00032         void endTransaction(ConnectionBase *c,bool forceReset = false);
00033         void execCommand(ConnectionBase *c,std::vector<byte> &cmd,std::vector<byte> &recv,
00034                 unsigned int &recvLen);
00035         bool isT1Protocol(ConnectionBase *c);
00036 
00037 public:
00038         SmartCardManager(void);
00039         ~SmartCardManager(void);
00040 
00041         uint getReaderCount();
00042         std::string getReaderName(uint idx);
00043         std::string getReaderState(uint idx);
00044         std::string getATRHex(uint idx);
00045         SmartCardConnection * connect(uint idx,bool forceT0);
00046         SmartCardConnection * reconnect(ConnectionBase *c,bool forceT0);
00047 };

Generated on Fri Oct 31 12:29:36 2008 for Cardlib reference by  doxygen 1.5.1