AusweisApp2
ReaderManagerPlugIn.h
gehe zur Dokumentation dieser Datei
1 
8 #pragma once
9 
10 #include "GlobalStatus.h"
11 #include "Reader.h"
12 #include "ReaderInfo.h"
14 
15 #include <QObject>
16 #include <QThread>
17 
18 namespace governikus
19 {
20 
22  : public QObject
23 {
24  Q_OBJECT
26 
27  private:
28  ReaderManagerPlugInInfo mInfo;
29  bool mScanRunning;
30 
31  protected:
32  void setPlugInEnabled(bool pEnabled)
33  {
34  if (mInfo.isEnabled() != pEnabled)
35  {
36  mInfo.setEnabled(pEnabled);
37  Q_EMIT fireStatusChanged(mInfo);
38  }
39  }
40 
41 
42  void setPlugInAvailable(bool pAvailable)
43  {
44  mInfo.setAvailable(pAvailable);
45  Q_EMIT fireStatusChanged(mInfo);
46  }
47 
48 
49  void setPlugInValue(ReaderManagerPlugInInfo::Key pKey, const QVariant& pValue)
50  {
51  mInfo.setValue(pKey, pValue);
52  }
53 
54  public:
55  ReaderManagerPlugIn(ReaderManagerPlugInType pPlugInType,
56  bool pAvailable = false,
57  bool pPlugInEnabled = false);
58  ~ReaderManagerPlugIn() override = default;
59 
60  [[nodiscard]] const ReaderManagerPlugInInfo& getInfo() const
61  {
62  return mInfo;
63  }
64 
65 
66  [[nodiscard]] bool isScanRunning() const
67  {
68  return mScanRunning;
69  }
70 
71 
72  [[nodiscard]] virtual QList<Reader*> getReaders() const = 0;
73 
74 
75  virtual void init()
76  {
77  Q_ASSERT(QObject::thread() == QThread::currentThread());
78  }
79 
80 
81  void reset()
82  {
83  shutdown();
84  init();
85  }
86 
87 
88  virtual void shutdown()
89  {
90  }
91 
92 
93  virtual void insert(const QString& pReaderName, const QVariant& pData)
94  {
95  Q_UNUSED(pReaderName)
96  Q_UNUSED(pData)
97  }
98 
99 
100  void shelve();
101 
102 
103  virtual void startScan(bool pAutoConnect);
104  virtual void stopScan(const QString& pError = QString());
105 
106  Q_SIGNALS:
107  void fireStatusChanged(const ReaderManagerPlugInInfo& pInfo);
108  void fireReaderAdded(const ReaderInfo& pInfo);
109  void fireReaderRemoved(const ReaderInfo& pInfo);
110  void fireCardInserted(const ReaderInfo& pInfo);
111  void fireCardRemoved(const ReaderInfo& pInfo);
112  void fireCardInfoChanged(const ReaderInfo& pInfo);
114 };
115 
116 } // namespace governikus
117 
118 Q_DECLARE_INTERFACE(governikus::ReaderManagerPlugIn, "governikus.ReaderManagerPlugIn")
Definition: ReaderInfo.h:18
Definition: ReaderManagerPlugIn.h:23
void setPlugInAvailable(bool pAvailable)
Definition: ReaderManagerPlugIn.h:42
ReaderManagerPlugIn(ReaderManagerPlugInType pPlugInType, bool pAvailable=false, bool pPlugInEnabled=false)
Definition: ReaderManagerPlugIn.cpp:11
void setPlugInValue(ReaderManagerPlugInInfo::Key pKey, const QVariant &pValue)
Definition: ReaderManagerPlugIn.h:49
virtual void insert(const QString &pReaderName, const QVariant &pData)
Definition: ReaderManagerPlugIn.h:93
virtual void init()
Definition: ReaderManagerPlugIn.h:75
friend class MockReaderManagerPlugIn
Definition: ReaderManagerPlugIn.h:25
const ReaderManagerPlugInInfo & getInfo() const
Definition: ReaderManagerPlugIn.h:60
~ReaderManagerPlugIn() override=default
virtual QList< Reader * > getReaders() const =0
virtual void shutdown()
Definition: ReaderManagerPlugIn.h:88
bool isScanRunning() const
Definition: ReaderManagerPlugIn.h:66
virtual void stopScan(const QString &pError=QString())
Definition: ReaderManagerPlugIn.cpp:43
void fireCardInfoChanged(const ReaderInfo &pInfo)
void shelve()
Definition: ReaderManagerPlugIn.cpp:20
void fireReaderPropertiesUpdated(const ReaderInfo &pInfo)
void fireCardRemoved(const ReaderInfo &pInfo)
virtual void startScan(bool pAutoConnect)
Definition: ReaderManagerPlugIn.cpp:33
void setPlugInEnabled(bool pEnabled)
Definition: ReaderManagerPlugIn.h:32
void reset()
Definition: ReaderManagerPlugIn.h:81
void fireReaderAdded(const ReaderInfo &pInfo)
void fireReaderRemoved(const ReaderInfo &pInfo)
void fireStatusChanged(const ReaderManagerPlugInInfo &pInfo)
void fireCardInserted(const ReaderInfo &pInfo)
Implementation of GeneralAuthenticate response APDUs.
Definition: CommandApdu.h:16