AusweisApp2
ReaderManagerPlugIn.h
gehe zur Dokumentation dieser Datei
1 
8 #pragma once
9 
10 #include "GlobalStatus.h"
11 #include "ReaderInfo.h"
13 
14 #include <QObject>
15 #include <QThread>
16 
17 namespace governikus
18 {
19 
20 class Reader;
21 
23  : public QObject
24 {
25  Q_OBJECT
26  ReaderManagerPlugInInfo mInfo;
27 
28  private:
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  }
46 
47 
48  void setPlugInValue(ReaderManagerPlugInInfo::Key pKey, const QVariant& pValue)
49  {
50  mInfo.setValue(pKey, pValue);
51  }
52 
53  public:
54  ReaderManagerPlugIn(ReaderManagerPlugInType pPlugInType,
55  bool pAvailable = false,
56  bool pPlugInEnabled = false);
57  ~ReaderManagerPlugIn() override = default;
58 
59  [[nodiscard]] const ReaderManagerPlugInInfo& getInfo() const
60  {
61  return mInfo;
62  }
63 
64 
65  [[nodiscard]] bool isScanRunning() const
66  {
67  return mScanRunning;
68  }
69 
70 
71  [[nodiscard]] virtual QList<Reader*> getReaders() const = 0;
72 
73 
74  virtual void init()
75  {
76  Q_ASSERT(QObject::thread() == QThread::currentThread());
77  }
78 
79 
80  void reset()
81  {
82  shutdown();
83  init();
84  }
85 
86 
87  virtual void shutdown()
88  {
89  }
90 
91 
92  virtual void startScan(bool pAutoConnect);
93  virtual void stopScan(const QString& pError = QString());
94 
95  Q_SIGNALS:
96  void fireStatusChanged(const ReaderManagerPlugInInfo& pInfo);
97  void fireReaderAdded(const ReaderInfo& pInfo);
98  void fireReaderRemoved(const ReaderInfo& pInfo);
99  void fireCardInserted(const ReaderInfo& pInfo);
100  void fireCardRemoved(const ReaderInfo& pInfo);
101  void fireCardRetryCounterChanged(const ReaderInfo& pInfo);
102  void fireReaderPropertiesUpdated(const ReaderInfo& pInfo);
103 };
104 
105 } // namespace governikus
106 
107 Q_DECLARE_INTERFACE(governikus::ReaderManagerPlugIn, "governikus.ReaderManagerPlugIn")
void fireReaderAdded(const ReaderInfo &pInfo)
virtual void startScan(bool pAutoConnect)
Definition: ReaderManagerPlugIn.cpp:19
virtual void shutdown()
Definition: ReaderManagerPlugIn.h:87
void fireCardInserted(const ReaderInfo &pInfo)
void fireReaderRemoved(const ReaderInfo &pInfo)
void setPlugInEnabled(bool pEnabled)
Definition: ReaderManagerPlugIn.h:32
void reset()
Definition: ReaderManagerPlugIn.h:80
void setPlugInAvailable(bool pAvailable)
Definition: ReaderManagerPlugIn.h:42
bool isScanRunning() const
Definition: ReaderManagerPlugIn.h:65
~ReaderManagerPlugIn() override=default
virtual QList< Reader * > getReaders() const =0
Definition: ReaderInfo.h:16
void fireStatusChanged(const ReaderManagerPlugInInfo &pInfo)
Implementation of ActivationContext for Intent based activation on Android systems.
Definition: ActivationContext.h:14
virtual void init()
Definition: ReaderManagerPlugIn.h:74
const ReaderManagerPlugInInfo & getInfo() const
Definition: ReaderManagerPlugIn.h:59
ReaderManagerPlugIn(ReaderManagerPlugInType pPlugInType, bool pAvailable=false, bool pPlugInEnabled=false)
Definition: ReaderManagerPlugIn.cpp:10
void fireReaderPropertiesUpdated(const ReaderInfo &pInfo)
void fireCardRetryCounterChanged(const ReaderInfo &pInfo)
void setPlugInValue(ReaderManagerPlugInInfo::Key pKey, const QVariant &pValue)
Definition: ReaderManagerPlugIn.h:48
Definition: ReaderManagerPlugIn.h:22
virtual void stopScan(const QString &pError=QString())
Definition: ReaderManagerPlugIn.cpp:29
void fireCardRemoved(const ReaderInfo &pInfo)