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
virtual Q_INVOKABLE bool isDetecting() override
Definition: RemoteClientImpl.cpp:204
virtual QStringList getConnectedDeviceIDs() const override
Definition: RemoteClientImpl.cpp:247
Code
Definition: GlobalStatus.h:25
Definition: RemoteDeviceDescriptor.h:21
virtual ~RemoteClientImpl() override
Definition: RemoteClientImpl.cpp:38
virtual Q_INVOKABLE void requestRemoteDevices() override
Definition: RemoteClientImpl.cpp:241
virtual Q_INVOKABLE void stopDetection() override
Definition: RemoteClientImpl.cpp:196
Definition: RemoteClientImpl.h:26
Definition: test_RemoteClientImpl.cpp:103
Implementation of ActivationContext for Intent based activation on Android systems.
Definition: ActivationContext.h:14
virtual QVector< QSharedPointer< RemoteDeviceListEntry > > getAnnouncingRemoteDevices() const override
Definition: RemoteClientImpl.cpp:235
virtual Q_INVOKABLE void establishConnection(const QSharedPointer< RemoteDeviceListEntry > &pEntry, const QString &pPsk) override
Definition: RemoteClientImpl.cpp:210
virtual QVector< RemoteServiceSettings::RemoteInfo > getConnectedDeviceInfos() override
Definition: RemoteClientImpl.cpp:253
Definition: RemoteClient.h:22
virtual Q_INVOKABLE void startDetection() override
Definition: RemoteClientImpl.cpp:182