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