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;
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 
45  ~RemoteClientImpl() override;
46 
47  void bootstrapRemoteConnectorThread();
48  void shutdownRemoteConnectorThread();
49  QSharedPointer<RemoteDeviceListEntry> mapToAndTakeRemoteConnectorPending(const RemoteDeviceDescriptor& pRemoteDeviceDescriptor);
50 
51  private Q_SLOTS:
52  void onNewMessage(const QByteArray& pData, const QHostAddress& pAddress);
53  void onRemoteDispatcherCreated(const RemoteDeviceDescriptor& pRemoteDeviceDescriptor, const QSharedPointer<RemoteDispatcherClient>& pDispatcher);
54  void onRemoteDispatcherError(const RemoteDeviceDescriptor& pRemoteDeviceDescriptor, RemoteErrorCode pErrorCode);
55  void onDispatcherDestroyed(GlobalStatus::Code pCloseCode, const QString& pId);
56 
57  public:
58  Q_INVOKABLE void startDetection() override;
59  Q_INVOKABLE void stopDetection() override;
60  Q_INVOKABLE bool isDetecting() override;
61 
62  Q_INVOKABLE void establishConnection(const QSharedPointer<RemoteDeviceListEntry>& pEntry, const QString& pPsk) override;
63 
64  [[nodiscard]] QVector<QSharedPointer<RemoteDeviceListEntry>> getAnnouncingRemoteDevices() const override;
65  Q_INVOKABLE void requestRemoteDevices() override;
66  [[nodiscard]] QStringList getConnectedDeviceIDs() const override;
67  QVector<RemoteServiceSettings::RemoteInfo> getConnectedDeviceInfos() override;
68 };
69 
70 
71 } // namespace governikus
governikus::RemoteClient::fireDispatcherDestroyed
void fireDispatcherDestroyed(GlobalStatus::Code pCloseCode, const QString &pId)
governikus::RemoteServiceSettings::removeTrustedCertificate
void removeTrustedCertificate(const QSslCertificate &pCertificate)
Definition: RemoteServiceSettings.cpp:173
governikus::RemoteDeviceList::fireDeviceVanished
void fireDeviceVanished(const QSharedPointer< RemoteDeviceListEntry > &)
governikus::RemoteDeviceList::fireDeviceAppeared
void fireDeviceAppeared(const QSharedPointer< RemoteDeviceListEntry > &)
governikus::RemoteDeviceDescriptor
Definition: RemoteDeviceDescriptor.h:22
governikus::RemoteClient::fireDeviceAppeared
void fireDeviceAppeared(const QSharedPointer< RemoteDeviceListEntry > &pEntry)
governikus::RemoteServiceSettings
Definition: RemoteServiceSettings.h:29
governikus::RemoteClientImpl::startDetection
Q_INVOKABLE void startDetection() override
Definition: RemoteClientImpl.cpp:191
governikus::RemoteClientImpl::requestRemoteDevices
Q_INVOKABLE void requestRemoteDevices() override
Definition: RemoteClientImpl.cpp:250
RemoteConnector.h
governikus::GlobalStatus::Code
Code
Definition: GlobalStatus.h:26
governikus::RemoteClient::fireDeviceVanished
void fireDeviceVanished(const QSharedPointer< RemoteDeviceListEntry > &pEntry)
governikus::RemoteClientImpl::isDetecting
Q_INVOKABLE bool isDetecting() override
Definition: RemoteClientImpl.cpp:213
DatagramHandler.h
Discovery.h
governikus::RemoteClient::fireDeviceUpdated
void fireDeviceUpdated(const QSharedPointer< RemoteDeviceListEntry > &pEntry)
AppSettings.h
governikus::RemoteClient
Definition: RemoteClient.h:25
governikus::RemoteClient::fireDetectionChanged
void fireDetectionChanged()
RemoteClient.h
governikus::Env
Definition: Env.h:44
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:269
governikus::RemoteDeviceDescriptor::getIfdId
const QString & getIfdId() const
Definition: RemoteDeviceDescriptor.cpp:101
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
Q_INVOKABLE void stopDetection() override
Definition: RemoteClientImpl.cpp:205
governikus::RemoteClientImpl::getConnectedDeviceInfos
QVector< RemoteServiceSettings::RemoteInfo > getConnectedDeviceInfos() override
Definition: RemoteClientImpl.cpp:262
RemoteClientImpl.h
Env.h
governikus::GlobalStatus::Code::RemoteConnector_ConnectionError
@ RemoteConnector_ConnectionError
governikus::RemoteDeviceList
Definition: RemoteDeviceList.h:47
governikus::RemoteClientImpl::getAnnouncingRemoteDevices
QVector< QSharedPointer< RemoteDeviceListEntry > > getAnnouncingRemoteDevices() const override
Definition: RemoteClientImpl.cpp:244
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
QStringList getConnectedDeviceIDs() const override
Definition: RemoteClientImpl.cpp:256
governikus::RemoteClientImpl::establishConnection
Q_INVOKABLE void establishConnection(const QSharedPointer< RemoteDeviceListEntry > &pEntry, const QString &pPsk) override
Definition: RemoteClientImpl.cpp:219
governikus::RemoteClient::fireNewRemoteDispatcher
void fireNewRemoteDispatcher(const QSharedPointer< RemoteDispatcherClient > &pRemoteDispatcher)
governikus::Discovery
Definition: Discovery.h:17
governikus::RemoteDeviceList::fireDeviceUpdated
void fireDeviceUpdated(const QSharedPointer< RemoteDeviceListEntry > &)
governikus::createNewObject< RemoteClient * >
RemoteClient * createNewObject< RemoteClient * >()
Definition: RemoteClientImpl.cpp:21
RemoteConnectorImpl.h