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
Code
Definition: GlobalStatus.h:26
Definition: RemoteClientImpl.h:28
Q_INVOKABLE void establishConnection(const QSharedPointer< RemoteDeviceListEntry > &pEntry, const QString &pPsk) override
Definition: RemoteClientImpl.cpp:219
QStringList getConnectedDeviceIDs() const override
Definition: RemoteClientImpl.cpp:256
Q_INVOKABLE void requestRemoteDevices() override
Definition: RemoteClientImpl.cpp:250
QVector< RemoteServiceSettings::RemoteInfo > getConnectedDeviceInfos() override
Definition: RemoteClientImpl.cpp:262
QVector< QSharedPointer< RemoteDeviceListEntry > > getAnnouncingRemoteDevices() const override
Definition: RemoteClientImpl.cpp:244
Q_INVOKABLE void startDetection() override
Definition: RemoteClientImpl.cpp:191
Q_INVOKABLE bool isDetecting() override
Definition: RemoteClientImpl.cpp:213
Q_INVOKABLE void stopDetection() override
Definition: RemoteClientImpl.cpp:205
Definition: RemoteClient.h:25
Definition: RemoteDeviceDescriptor.h:22
Implementation of ActivationContext for Intent based activation on Android systems.
Definition: ActivationContext.h:15
RemoteClient * createNewObject< RemoteClient * >()
Definition: RemoteClientImpl.cpp:21