AusweisApp
Lade ...
Suche ...
Keine Treffer
Reader.h
gehe zur Dokumentation dieser Datei
1
5#pragma once
6
7#include "Card.h"
8#include "ReaderInfo.h"
9
10#include <QObject>
11#include <QSharedPointer>
12#include <QTimerEvent>
13
14namespace governikus
15{
16class CardConnectionWorker;
17
18class Reader
19 : public QObject
20{
21 Q_OBJECT
22 friend class MockReader;
23
24 protected:
25 void setInfoBasicReader(bool pBasicReader);
26 void setInfoMaxApduLength(int pMaxApduLength);
27 void setInfoCardInfo(const CardInfo& pCardInfo);
29 void removeCardInfo();
30 void fetchCardInfo();
31
32 [[nodiscard]] int getTimerId() const;
33 void setTimerId(int pTimerId);
34
35 void timerEvent(QTimerEvent* pEvent) override;
36
37 private:
38 ReaderInfo mReaderInfo;
39 int mTimerId;
40
41 struct RetryCounterResult
42 {
43 CardReturnCode cardReturnCode = CardReturnCode::COMMAND_FAILED;
44 int retryCounter = -1;
45 bool pinDeactivated = false;
46 bool pinInitial = false;
47 };
48 RetryCounterResult getRetryCounter(QSharedPointer<CardConnectionWorker> pCardConnectionWorker);
49
50 public:
51 Reader(ReaderManagerPlugInType pPlugInType, const QString& pReaderName);
52 ~Reader() override = default;
53
57 virtual void updateCard()
58 {
59 }
60
61
62 [[nodiscard]] const QString& getName() const
63 {
64 return mReaderInfo.getName();
65 }
66
67
68 [[nodiscard]] const ReaderInfo& getReaderInfo() const
69 {
70 return mReaderInfo;
71 }
72
73
74 virtual void insertCard(const QVariant& pData = QVariant());
75
76 void shelveCard();
77
78 [[nodiscard]] virtual Card* getCard() const = 0;
79
80 void setPukInoperative();
81
86 QSharedPointer<CardConnectionWorker> createCardConnectionWorker();
87
88 CardReturnCode updateRetryCounter(QSharedPointer<CardConnectionWorker> pCardConnectionWorker);
89
90 Q_SIGNALS:
91 void fireCardInserted(const ReaderInfo& pInfo);
92 void fireCardRemoved(const ReaderInfo& pInfo);
93 void fireCardInfoChanged(const ReaderInfo& pInfo);
95};
96
97
99 : public Reader
100{
101 Q_OBJECT
102
103 public:
104 using Reader::Reader;
105 ~ConnectableReader() override = default;
106
107 virtual void connectReader() = 0;
108 virtual void disconnectReader(const QString& pError = QString()) = 0;
109
110 Q_SIGNALS:
112};
113
114} // namespace governikus
Holds smart card information.
Definition: CardInfo.h:24
TagType
Definition: CardInfo.h:31
Definition: Card.h:47
Definition: Reader.h:100
~ConnectableReader() override=default
virtual void connectReader()=0
virtual void disconnectReader(const QString &pError=QString())=0
Definition: ReaderInfo.h:18
const QString & getName() const
Definition: ReaderInfo.h:150
Definition: Reader.h:20
void setInfoCardInfo(const CardInfo &pCardInfo)
Definition: Reader.cpp:44
void fireCardInfoChanged(const ReaderInfo &pInfo)
void fireCardInserted(const ReaderInfo &pInfo)
void setCardInfoTagType(CardInfo::TagType pTagType)
Definition: Reader.cpp:50
CardReturnCode updateRetryCounter(QSharedPointer< CardConnectionWorker > pCardConnectionWorker)
Definition: Reader.cpp:179
void shelveCard()
Definition: Reader.cpp:110
void setPukInoperative()
Definition: Reader.cpp:138
void setInfoMaxApduLength(int pMaxApduLength)
Definition: Reader.cpp:38
const ReaderInfo & getReaderInfo() const
Definition: Reader.h:68
Reader(ReaderManagerPlugInType pPlugInType, const QString &pReaderName)
Definition: Reader.cpp:24
friend class MockReader
Definition: Reader.h:22
void removeCardInfo()
Definition: Reader.cpp:56
virtual void insertCard(const QVariant &pData=QVariant())
Definition: Reader.cpp:89
~Reader() override=default
void timerEvent(QTimerEvent *pEvent) override
Definition: Reader.cpp:170
void fireCardRemoved(const ReaderInfo &pInfo)
void setInfoBasicReader(bool pBasicReader)
Definition: Reader.cpp:32
QSharedPointer< CardConnectionWorker > createCardConnectionWorker()
Creates a new CardConnectionWorker if and only if there is a card in the reader which is not already ...
Definition: Reader.cpp:145
int getTimerId() const
Definition: Reader.cpp:77
void setTimerId(int pTimerId)
Definition: Reader.cpp:83
virtual Card * getCard() const =0
virtual void updateCard()
Periodically called to perform an update of the readers and cards state.
Definition: Reader.h:57
const QString & getName() const
Definition: Reader.h:62
void fireReaderPropertiesUpdated(const ReaderInfo &pInfo)
void fetchCardInfo()
Definition: Reader.cpp:63
Implementation of GeneralAuthenticate response APDUs.
Definition: CommandApdu.h:16