AusweisApp2
 Alle Klassen Namensbereiche Dateien Funktionen Variablen Typdefinitionen Aufzählungen Aufzählungswerte Propertys Freundbeziehungen Makrodefinitionen
ReaderManager.h
gehe zur Dokumentation dieser Datei
1 
5 #pragma once
6 
8 #include "DeviceError.h"
9 #include "Reader.h"
10 #include "ReaderManagerWorker.h"
11 #include "RemoteClient.h"
12 
13 #include <QPointer>
14 #include <QThread>
15 
16 namespace governikus
17 {
18 
20  : public QObject
21 {
22  Q_OBJECT
23 
24  private:
25  QThread mThread;
26  QPointer<ReaderManagerWorker> mWorker;
27  QSharedPointer<RemoteClient> mRemoteClient;
28 
29  protected:
30  ReaderManager();
32 
33  public:
34  static ReaderManager& getInstance();
35 
40  void init(const QSharedPointer<RemoteClient>& pRemoteClient = QSharedPointer<RemoteClient>());
41 
45  void startScanAll(bool pAutoConnect = true);
46 
50  void startScan(ReaderManagerPlugInType pType, bool pAutoConnect = true);
51 
55  void stopScanAll();
56 
62  void stopScan(ReaderManagerPlugInType pType);
63 
64  QVector<ReaderManagerPlugInInfo> getPlugInInfos() const;
65  QVector<ReaderInfo> getReaderInfos(ReaderManagerPlugInType pType) const;
66  virtual QVector<ReaderInfo> getReaderInfos(const ReaderFilter& pFilter = ReaderFilter()) const;
67  ReaderInfo getReaderInfo(const QString& pReaderName) const;
68 
75  template<typename T>
76  QMetaObject::Connection callCreateCardConnectionCommand(const QString& pReaderName, const typename QtPrivate::FunctionPointer<T>::Object* pReceiver, T pSlot)
77  {
78  CreateCardConnectionCommand* command = new CreateCardConnectionCommand(pReaderName, mWorker);
79  QMetaObject::Connection connection = connect(command, &CreateCardConnectionCommand::fireCommandDone, pReceiver, pSlot, Qt::UniqueConnection);
80  if (connection)
81  {
82  QMetaObject::invokeMethod(command, "execute", Qt::QueuedConnection);
83  }
84  else
85  {
86  qCritical() << "Cannot invoke CreateCardConnectionCommand command";
87  command->deleteLater();
88  }
89 
90  return connection;
91  }
92 
93 
94  void connectReader(const QString& pReaderName);
95  void disconnectReader(const QString& pReaderName);
96  void disconnectAllReaders();
97 
98  QSharedPointer<RemoteClient> getRemoteClient();
99 
100  Q_SIGNALS:
101  void firePluginAdded(const ReaderManagerPlugInInfo& pInfo);
102  void fireStatusChanged(const ReaderManagerPlugInInfo& pInfo);
103  void fireReaderAdded(const QString& pReaderName);
104  void fireReaderRemoved(const QString& pReaderName);
105  void fireReaderDeviceError(DeviceError pDeviceError);
106  void fireReaderPropertiesUpdated(const QString& pReaderName);
107  void fireCardInserted(const QString& pReaderName);
108  void fireCardRemoved(const QString& pReaderName);
109  void fireCardRetryCounterChanged(const QString& pReaderName);
110  void fireReaderEvent();
111  void fireInitialized();
112 
113  public Q_SLOTS:
118  void shutdown();
119 };
120 
121 } /* namespace governikus */
void startScanAll(bool pAutoConnect=true)
Starts a scan for all device types.
Definition: ReaderManager.cpp:109
ReaderManager()
Definition: ReaderManager.cpp:19
Definition: ReaderFilter.h:20
void fireReaderPropertiesUpdated(const QString &pReaderName)
~ReaderManager()
Definition: ReaderManager.cpp:29
void disconnectReader(const QString &pReaderName)
Definition: ReaderManager.cpp:175
void fireReaderRemoved(const QString &pReaderName)
void connectReader(const QString &pReaderName)
Definition: ReaderManager.cpp:169
ReaderInfo getReaderInfo(const QString &pReaderName) const
Definition: ReaderManager.cpp:161
void init(const QSharedPointer< RemoteClient > &pRemoteClient=QSharedPointer< RemoteClient >())
Initialize the reader manager service.
Definition: ReaderManager.cpp:45
Definition: ReaderInfo.h:17
void fireCardRetryCounterChanged(const QString &pReaderName)
QMetaObject::Connection callCreateCardConnectionCommand(const QString &pReaderName, const typename QtPrivate::FunctionPointer< T >::Object *pReceiver, T pSlot)
Executes a command to create a CardConnection for a specified reader.
Definition: ReaderManager.h:76
void stopScan(ReaderManagerPlugInType pType)
Stops started scan for devices.
Definition: ReaderManager.cpp:118
void fireStatusChanged(const ReaderManagerPlugInInfo &pInfo)
void firePluginAdded(const ReaderManagerPlugInInfo &pInfo)
Definition: CreateCardConnectionCommand.h:23
#define T(v)
Definition: http_parser.cpp:234
void fireReaderAdded(const QString &pReaderName)
Definition: ReaderManagerPlugInInfo.h:22
QSharedPointer< RemoteClient > getRemoteClient()
Definition: ReaderManager.cpp:187
void fireCardRemoved(const QString &pReaderName)
void disconnectAllReaders()
Definition: ReaderManager.cpp:181
QVector< ReaderInfo > getReaderInfos(ReaderManagerPlugInType pType) const
Definition: ReaderManager.cpp:147
void shutdown()
Shuts down the reader manager service.
Definition: ReaderManager.cpp:84
void fireCommandDone(QSharedPointer< CreateCardConnectionCommand > pCommand)
void startScan(ReaderManagerPlugInType pType, bool pAutoConnect=true)
Starts a scan for devices if registered plugin don&#39;t scan anytime.
Definition: ReaderManager.cpp:97
void fireReaderDeviceError(DeviceError pDeviceError)
Definition: ReaderManager.h:19
void stopScanAll()
Stops scan for all device types.
Definition: ReaderManager.cpp:130
QVector< ReaderManagerPlugInInfo > getPlugInInfos() const
Definition: ReaderManager.cpp:139
static ReaderManager & getInstance()
Definition: ReaderManager.cpp:39
void fireCardInserted(const QString &pReaderName)