AusweisApp2
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 
14 namespace governikus
15 {
16 
17 class Reader
18  : public QObject
19 {
20  Q_OBJECT
21 
22  public:
23  enum class CardEvent
24  {
26  };
27 
28  protected:
30  int mTimerId;
31 
32  void timerEvent(QTimerEvent* pEvent) override;
33 
34  private:
35  virtual CardEvent updateCard() = 0;
36 
37  struct RetryCounterResult
38  {
39  CardReturnCode cardReturnCode = CardReturnCode::COMMAND_FAILED;
40  int retryCounter = -1;
41  bool pinDeactivated = false;
42  };
43  RetryCounterResult getRetryCounter(QSharedPointer<CardConnectionWorker> pCardConnectionWorker);
44 
45  void fireUpdateSignal(CardEvent pCardEvent);
46 
47  public:
48  Reader(ReaderManagerPlugInType pPlugInType, const QString& pReaderName);
49  ~Reader() override = default;
50 
54  void update();
55 
56  [[nodiscard]] const QString& getName() const
57  {
58  return mReaderInfo.getName();
59  }
60 
61 
62  [[nodiscard]] const ReaderInfo& getReaderInfo() const
63  {
64  return mReaderInfo;
65  }
66 
67 
68  [[nodiscard]] virtual Card* getCard() const = 0;
69 
70  void setPukInoperative();
71 
76  QSharedPointer<CardConnectionWorker> createCardConnectionWorker();
77 
78  CardReturnCode updateRetryCounter(QSharedPointer<CardConnectionWorker> pCardConnectionWorker);
79 
80  Q_SIGNALS:
81  void fireCardInserted(const ReaderInfo& pInfo);
82  void fireCardRemoved(const ReaderInfo& pInfo);
85 };
86 
87 
89  : public Reader
90 {
91  Q_OBJECT
92 
93  public:
94  using Reader::Reader;
95  ~ConnectableReader() override = default;
96 
97  virtual void connectReader() = 0;
98  virtual void disconnectReader(const QString& pError = QString()) = 0;
99 
100  Q_SIGNALS:
102 };
103 
104 } // namespace governikus
Definition: Card.h:24
Definition: Reader.h:90
~ConnectableReader() override=default
virtual void connectReader()=0
virtual void disconnectReader(const QString &pError=QString())=0
Definition: ReaderInfo.h:17
const QString & getName() const
Definition: ReaderInfo.h:107
Definition: Reader.h:19
CardEvent
Definition: Reader.h:24
void fireCardInserted(const ReaderInfo &pInfo)
CardReturnCode updateRetryCounter(QSharedPointer< CardConnectionWorker > pCardConnectionWorker)
Definition: Reader.cpp:76
void setPukInoperative()
Definition: Reader.cpp:29
void update()
Periodically called to perform an update of the readers and cards state.
Definition: Reader.cpp:69
const QString & getName() const
Definition: Reader.h:56
Reader(ReaderManagerPlugInType pPlugInType, const QString &pReaderName)
Definition: Reader.cpp:21
void fireCardRetryCounterChanged(const ReaderInfo &pInfo)
~Reader() override=default
void timerEvent(QTimerEvent *pEvent) override
Definition: Reader.cpp:60
void fireCardRemoved(const ReaderInfo &pInfo)
const ReaderInfo & getReaderInfo() const
Definition: Reader.h:62
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:35
virtual Card * getCard() const =0
int mTimerId
Definition: Reader.h:30
void fireReaderPropertiesUpdated(const ReaderInfo &pInfo)
ReaderInfo mReaderInfo
Definition: Reader.h:29
Implementation of ActivationContext for Intent based activation on Android systems.
Definition: ActivationContext.h:15