00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029 #ifndef CTREADERTRADER_H
00030 #define CTREADERTRADER_H
00031
00032 #include <chipcard/cterror.h>
00033 #include <chipcard/ctreadercontext.h>
00034
00035
00039 class CTReaderTrader {
00040 public:
00041 typedef enum {
00042 CallBackContinue=0,
00043 CallBackAbort
00044 } CallBackResult;
00045
00046 private:
00047 bool _next;
00048 unsigned int _readerFlags;
00049 unsigned int _readerFlagsMask;
00050 unsigned int _status;
00051 unsigned int _statusMask;
00052 unsigned int _statusDelta;
00053 int _requestid;
00054
00055 int _responseLoop(int reqid, int maxloop);
00056
00057 protected:
00058 virtual CallBackResult callback(bool first);
00059
00060 public:
00061 CTReaderTrader(bool next=false,
00062 unsigned int readerFlags=0,
00063 unsigned int readerFlagsMask=0,
00064 unsigned int status=0,
00065 unsigned int statusMask=CHIPCARD_STATUS_LOCKED_BY_OTHER,
00066 unsigned int statusDelta=0);
00067 virtual ~CTReaderTrader();
00068
00069 virtual CTError start();
00070 virtual CTError stop();
00071
00075 CTError getNext(CTReaderContext &tctx, int timeout);
00076
00084 CTError peekNext(int timeout=0);
00085
00086 };
00087
00088
00089
00090 #endif
00091
00092