AusweisApp2
RemoteClientImpl.h
gehe zur Dokumentation dieser Datei
1 
7 #pragma once
8 
9 #include "RemoteClient.h"
10 
11 #include "DatagramHandler.h"
12 #include "Env.h"
13 #include "RemoteConnector.h"
14 #include "RemoteDeviceList.h"
15 
16 #include <QObject>
17 #include <QPointer>
18 #include <QThread>
19 #include <QTimer>
20 
21 class test_RemoteClient;
22 
23 namespace governikus
24 {
25 
27  : public RemoteClient
28 {
29  Q_OBJECT
30 
31  private:
32  friend ::test_RemoteClient;
33  friend RemoteClient* singleton<RemoteClient>();
34 
35  QSharedPointer<DatagramHandler> mDatagramHandler;
36  QScopedPointer<RemoteDeviceList> mRemoteDeviceList;
37  QMap<QString, int> mErrorCounter;
38 
39  QThread mRemoteConnectorThread;
40  QPointer<RemoteConnector> mRemoteConnector;
41  QVector<QSharedPointer<RemoteDeviceListEntry>> mRemoteConnectorPending;
42  QStringList mConnectedDeviceIds;
43 
44  void bootstrapRemoteConnectorThread();
45  void shutdownRemoteConnectorThread();
46  QSharedPointer<RemoteDeviceListEntry> mapToAndTakeRemoteConnectorPending(const RemoteDeviceDescriptor& pRemoteDeviceDescriptor);
47 
48  protected:
50  virtual ~RemoteClientImpl() override;
51 
52  private Q_SLOTS:
53  void onNewMessage(const QByteArray& pData, const QHostAddress& pAddress);
54  void onRemoteDispatcherCreated(const RemoteDeviceDescriptor& pRemoteDeviceDescriptor, const QSharedPointer<RemoteDispatcherClient>& pDispatcher);
55  void onRemoteDispatcherError(const RemoteDeviceDescriptor& pRemoteDeviceDescriptor, RemoteErrorCode pErrorCode);
56  void onDispatcherDestroyed(GlobalStatus::Code pCloseCode, const QString& pId);
57 
58  public:
59  Q_INVOKABLE virtual void startDetection() override;
60  Q_INVOKABLE virtual void stopDetection() override;
61  Q_INVOKABLE virtual bool isDetecting() override;
62 
63  Q_INVOKABLE virtual void establishConnection(const QSharedPointer<RemoteDeviceListEntry>& pEntry, const QString& pPsk) override;
64 
65  virtual QVector<QSharedPointer<RemoteDeviceListEntry>> getAnnouncingRemoteDevices() const override;
66  Q_INVOKABLE virtual void requestRemoteDevices() override;
67  virtual QStringList getConnectedDeviceIDs() const override;
68  virtual QVector<RemoteServiceSettings::RemoteInfo> getConnectedDeviceInfos() override;
69 };
70 
71 
72 } // namespace governikus
governikus::RemoteClient::fireDispatcherDestroyed
void fireDispatcherDestroyed(GlobalStatus::Code pCloseCode, const QString &pId)
governikus::RemoteServiceSettings::removeTrustedCertificate
void removeTrustedCertificate(const QSslCertificate &pCertificate)
Definition: RemoteServiceSettings.cpp:167
governikus::RemoteDeviceDescriptor
Definition: RemoteDeviceDescriptor.h:22
governikus::RemoteServiceSettings
Definition: RemoteServiceSettings.h:29
governikus::RemoteClientImpl::startDetection
virtual Q_INVOKABLE void startDetection() override
Definition: RemoteClientImpl.cpp:182
governikus::RemoteClientImpl::requestRemoteDevices
virtual Q_INVOKABLE void requestRemoteDevices() override
Definition: RemoteClientImpl.cpp:241
RemoteConnector.h
governikus::GlobalStatus::Code
Code
Definition: GlobalStatus.h:26
governikus::RemoteClientImpl::isDetecting
virtual Q_INVOKABLE bool isDetecting() override
Definition: RemoteClientImpl.cpp:204
DatagramHandler.h
Discovery.h
AppSettings.h
governikus::RemoteClient
Definition: RemoteClient.h:25
governikus::RemoteClient::fireDetectionChanged
void fireDetectionChanged()
RemoteClient.h
governikus::Env
Definition: Env.h:39
governikus::RemoteClient::fireEstablishConnectionDone
void fireEstablishConnectionDone(const QSharedPointer< RemoteDeviceListEntry > &pEntry, const GlobalStatus &pStatus)
governikus::GlobalStatus::Code::No_Error
@ No_Error
governikus::RemoteClient::fireCertificateRemoved
void fireCertificateRemoved(const QString &pDeviceName)
governikus::RemoteServiceSettings::getRemoteInfos
QVector< RemoteInfo > getRemoteInfos() const
Definition: RemoteServiceSettings.cpp:263
governikus::RemoteDeviceDescriptor::getIfdId
const QString & getIfdId() const
Definition: RemoteDeviceDescriptor.cpp:103
governikus::RemoteClientImpl::~RemoteClientImpl
virtual ~RemoteClientImpl() override
Definition: RemoteClientImpl.cpp:38
RemoteDeviceList.h
governikus::RemoteClientImpl
Definition: RemoteClientImpl.h:28
governikus::RemoteClient::fireRemoteDevicesInfo
void fireRemoteDevicesInfo(const QVector< QSharedPointer< RemoteDeviceListEntry >> &pRemoteDevices)
governikus
Implementation of ActivationContext for Intent based activation on Android systems.
Definition: ActivationContext.h:15
governikus::RemoteClientImpl::stopDetection
virtual Q_INVOKABLE void stopDetection() override
Definition: RemoteClientImpl.cpp:196
governikus::RemoteClientImpl::getConnectedDeviceInfos
virtual QVector< RemoteServiceSettings::RemoteInfo > getConnectedDeviceInfos() override
Definition: RemoteClientImpl.cpp:253
RemoteClientImpl.h
governikus::RemoteClientImpl::RemoteClientImpl
RemoteClientImpl()
Env.h
governikus::GlobalStatus::Code::RemoteConnector_ConnectionError
@ RemoteConnector_ConnectionError
governikus::RemoteDeviceList
Definition: RemoteDeviceList.h:45
governikus::RemoteClientImpl::getAnnouncingRemoteDevices
virtual QVector< QSharedPointer< RemoteDeviceListEntry > > getAnnouncingRemoteDevices() const override
Definition: RemoteClientImpl.cpp:235
governikus::RemoteDispatcher::fireClosed
void fireClosed(GlobalStatus::Code pCloseCode, const QString &pId)
governikus::DatagramHandler::fireNewMessage
void fireNewMessage(const QByteArray &pData, const QHostAddress &pAddress)
governikus::RemoteClientImpl::getConnectedDeviceIDs
virtual QStringList getConnectedDeviceIDs() const override
Definition: RemoteClientImpl.cpp:247
governikus::RemoteClientImpl::establishConnection
virtual Q_INVOKABLE void establishConnection(const QSharedPointer< RemoteDeviceListEntry > &pEntry, const QString &pPsk) override
Definition: RemoteClientImpl.cpp:210
defineSingletonImpl
defineSingletonImpl(RemoteClient, RemoteClientImpl) RemoteClientImpl
Definition: RemoteClientImpl.cpp:20
governikus::RemoteClient::fireNewRemoteDispatcher
void fireNewRemoteDispatcher(const QSharedPointer< RemoteDispatcherClient > &pRemoteDispatcher)
governikus::Discovery
Definition: Discovery.h:17
SingletonHelper.h
RemoteConnectorImpl.h