AusweisApp2
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{
16
17class Reader
18 : public QObject
19{
20 Q_OBJECT
21 friend class MockReader;
22
23 protected:
24 void setInfoBasicReader(bool pBasicReader);
25 void setInfoMaxApduLength(int pMaxApduLength);
26 void setInfoCardInfo(const CardInfo& pCardInfo);
28 void removeCardInfo();
29 void fetchCardInfo(QSharedPointer<CardConnectionWorker> pCardConnection);
30
31 [[nodiscard]] int getTimerId();
32 void setTimerId(int pTimerId);
33
34 void timerEvent(QTimerEvent* pEvent) override;
35
36 private:
37 ReaderInfo mReaderInfo;
38 int mTimerId;
39
40 struct RetryCounterResult
41 {
42 CardReturnCode cardReturnCode = CardReturnCode::COMMAND_FAILED;
43 int retryCounter = -1;
44 bool pinDeactivated = false;
45 bool pinInitial = false;
46 };
47 RetryCounterResult getRetryCounter(QSharedPointer<CardConnectionWorker> pCardConnectionWorker);
48
49 public:
50 Reader(ReaderManagerPlugInType pPlugInType, const QString& pReaderName);
51 ~Reader() override = default;
52
56 virtual void updateCard()
57 {
58 }
59
60
61 [[nodiscard]] const QString& getName() const
62 {
63 return mReaderInfo.getName();
64 }
65
66
67 [[nodiscard]] const ReaderInfo& getReaderInfo() const
68 {
69 return mReaderInfo;
70 }
71
72
73 virtual void insertCard(const QVariant& pData = QVariant());
74
75 void shelveCard();
76
77 [[nodiscard]] virtual Card* getCard() const = 0;
78
79 void setPukInoperative();
80
85 QSharedPointer<CardConnectionWorker> createCardConnectionWorker();
86
87 CardReturnCode updateRetryCounter(QSharedPointer<CardConnectionWorker> pCardConnectionWorker);
88
89 Q_SIGNALS:
90 void fireCardInserted(const ReaderInfo& pInfo);
91 void fireCardRemoved(const ReaderInfo& pInfo);
92 void fireCardInfoChanged(const ReaderInfo& pInfo);
94};
95
96
98 : public Reader
99{
100 Q_OBJECT
101
102 public:
103 using Reader::Reader;
104 ~ConnectableReader() override = default;
105
106 virtual void connectReader() = 0;
107 virtual void disconnectReader(const QString& pError = QString()) = 0;
108
109 Q_SIGNALS:
111};
112
113} // namespace governikus
Holds smart card information.
Definition: CardInfo.h:30
TagType
Definition: CardInfo.h:37
Definition: Card.h:45
Definition: Reader.h:99
~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:157
Definition: Reader.h:19
void setInfoCardInfo(const CardInfo &pCardInfo)
Definition: Reader.cpp:43
void fireCardInfoChanged(const ReaderInfo &pInfo)
void fireCardInserted(const ReaderInfo &pInfo)
void setCardInfoTagType(CardInfo::TagType pTagType)
Definition: Reader.cpp:49
CardReturnCode updateRetryCounter(QSharedPointer< CardConnectionWorker > pCardConnectionWorker)
Definition: Reader.cpp:180
void shelveCard()
Definition: Reader.cpp:111
void setPukInoperative()
Definition: Reader.cpp:139
void setInfoMaxApduLength(int pMaxApduLength)
Definition: Reader.cpp:37
const ReaderInfo & getReaderInfo() const
Definition: Reader.h:67
Reader(ReaderManagerPlugInType pPlugInType, const QString &pReaderName)
Definition: Reader.cpp:23
friend class MockReader
Definition: Reader.h:21
void removeCardInfo()
Definition: Reader.cpp:55
virtual void insertCard(const QVariant &pData=QVariant())
Definition: Reader.cpp:86
~Reader() override=default
void timerEvent(QTimerEvent *pEvent) override
Definition: Reader.cpp:171
int getTimerId()
Definition: Reader.cpp:74
void fireCardRemoved(const ReaderInfo &pInfo)
void setInfoBasicReader(bool pBasicReader)
Definition: Reader.cpp:31
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:146
void fetchCardInfo(QSharedPointer< CardConnectionWorker > pCardConnection)
Definition: Reader.cpp:62
void setTimerId(int pTimerId)
Definition: Reader.cpp:80
virtual Card * getCard() const =0
virtual void updateCard()
Periodically called to perform an update of the readers and cards state.
Definition: Reader.h:56
const QString & getName() const
Definition: Reader.h:61
void fireReaderPropertiesUpdated(const ReaderInfo &pInfo)
A simple template renderer.
Definition: ActivationContext.h:15