AusweisApp2
Lade ...
Suche ...
Keine Treffer
RemoteServiceModel.h
gehe zur Dokumentation dieser Datei
1
7#pragma once
8
9#include "Env.h"
10#include "ReaderManager.h"
11#include "RemoteDeviceModel.h"
12#include "WorkflowModel.h"
13#include "WorkflowRequest.h"
15
16#include <QObject>
17#include <QQmlEngine>
18
19namespace governikus
20{
21
23 : public WorkflowModel
24{
25 Q_OBJECT
26 friend class Env;
27
28 Q_PROPERTY(bool running READ isRunning NOTIFY fireIsRunningChanged)
29 Q_PROPERTY(bool isStarting READ isStarting NOTIFY fireIsStartingChanged)
30 Q_PROPERTY(bool runnable READ isRunnable NOTIFY fireEnvironmentChanged)
31 Q_PROPERTY(bool canEnableNfc READ isCanEnableNfc NOTIFY fireEnvironmentChanged)
32 Q_PROPERTY(QString errorMessage READ getErrorMessage NOTIFY fireEnvironmentChanged)
33 Q_PROPERTY(bool isPairing READ isPairing NOTIFY firePskChanged)
34 Q_PROPERTY(QByteArray psk READ getPsk NOTIFY firePskChanged)
36 Q_PROPERTY(QString connectionInfo READ getConnectionInfo NOTIFY fireConnectionInfoChanged)
39 Q_PROPERTY(RemoteDeviceModel * knownDevices READ getKnownDevices CONSTANT)
43 Q_PROPERTY(bool requiresLocalNetworkPermission MEMBER mRequiresLocalNetworkPermission CONSTANT)
44
45 private:
46 QSharedPointer<IfdServiceContext> mContext;
47 bool mRunnable;
48 bool mIsStarting;
49 bool mCanEnableNfc;
50 bool mPairingRequested;
51 QString mErrorMessage;
52 QByteArray mPsk;
53 RemoteDeviceModel mAvailableRemoteDevices;
54 RemoteDeviceModel mKnownDevices;
55 QString mConnectionInfo;
56 QString mConnectedServerDeviceNames;
57 QSharedPointer<IfdListEntry> mRememberedServerEntry;
58 const bool mRequiresLocalNetworkPermission;
59#if defined(Q_OS_IOS)
60 bool mWasRunning;
61 bool mWasPairing;
62#endif
63
65 ~RemoteServiceModel() override = default;
66
67 QString getErrorMessage(bool pNfcPluginAvailable, bool pNfcPluginEnabled, bool pWifiEnabled) const;
68
69 void setStarting(bool pStarting);
70
71 private Q_SLOTS:
72 void onEstablishConnectionDone(const QSharedPointer<IfdListEntry>& pEntry, const GlobalStatus& pStatus);
73 void onConnectionInfoChanged(bool pConnected);
74 void onCardConnected(const QSharedPointer<CardConnection>& pConnection);
75 void onCardDisconnected(const QSharedPointer<CardConnection>& pConnection);
76 void onConnectedDevicesChanged();
77 void onEnvironmentChanged();
78 void onApplicationStateChanged(const bool pIsAppInForeground);
79
80 public Q_SLOTS:
82
83 public:
84 [[nodiscard]] bool isRunning() const;
85 Q_INVOKABLE void setRunning(bool pState, bool pEnablePairing = false);
86 [[nodiscard]] bool isStarting() const;
87
89 [[nodiscard]] RemoteDeviceModel* getKnownDevices();
90 void setDetectRemoteDevices(bool pNewStatus);
91 [[nodiscard]] bool detectRemoteDevices() const;
92 Q_INVOKABLE bool rememberServer(const QString& pDeviceId);
93 Q_INVOKABLE void connectToRememberedServer(const QString& pServerPsk);
94
95 void resetRemoteServiceContext(const QSharedPointer<IfdServiceContext>& pContext = QSharedPointer<IfdServiceContext>());
96 void setPairing(bool pEnabled);
97 [[nodiscard]] bool isPairing();
98 [[nodiscard]] bool isConnectedToPairedDevice() const;
99 [[nodiscard]] bool enableTransportPinLink() const;
100 [[nodiscard]] bool isRunnable() const;
101 [[nodiscard]] bool isCanEnableNfc() const;
102 [[nodiscard]] QString getErrorMessage() const;
103 [[nodiscard]] QByteArray getPsk() const;
104 [[nodiscard]] QString getConnectionInfo() const;
105 [[nodiscard]] QString getConnectedServerDeviceNames() const;
106 [[nodiscard]] bool getRemoteReaderVisible() const;
107
108 [[nodiscard]] Q_INVOKABLE bool pinPadModeOn() const;
109 Q_INVOKABLE void forgetDevice(const QString& pId);
110 Q_INVOKABLE void cancelPasswordRequest();
111 Q_INVOKABLE void changePinLength();
112
113 Q_SIGNALS:
114 void fireStartWorkflow(const QSharedPointer<WorkflowRequest>& pRequest);
118 void firePskChanged(const QByteArray& pPsk);
122 void firePairingFailed(const QString& pDeviceName, const QString& pErrorMessage);
123 void firePairingSuccess(const QString& pDeviceName);
129 void fireCertificateRemoved(const QString& pDeviceName);
130};
131
132
133} // namespace governikus
Definition: Env.h:44
Definition: GlobalStatus.h:20
Definition: RemoteDeviceModel.h:72
Definition: RemoteServiceModel.h:24
QByteArray psk
Definition: RemoteServiceModel.h:34
Q_INVOKABLE void connectToRememberedServer(const QString &pServerPsk)
Definition: RemoteServiceModel.cpp:198
Q_INVOKABLE void changePinLength()
Definition: RemoteServiceModel.cpp:421
bool running
Definition: RemoteServiceModel.h:28
bool remoteReaderVisible
Definition: RemoteServiceModel.h:42
void setDetectRemoteDevices(bool pNewStatus)
Definition: RemoteServiceModel.cpp:185
bool connectedToPairedDevice
Definition: RemoteServiceModel.h:35
bool isRunnable() const
Definition: RemoteServiceModel.cpp:336
void fireStartWorkflow(const QSharedPointer< WorkflowRequest > &pRequest)
void firePairingFailed(const QString &pDeviceName, const QString &pErrorMessage)
Q_INVOKABLE void forgetDevice(const QString &pId)
Definition: RemoteServiceModel.cpp:406
bool canEnableNfc
Definition: RemoteServiceModel.h:31
void onTranslationChanged()
Definition: RemoteServiceModel.cpp:117
QString connectionInfo
Definition: RemoteServiceModel.h:36
QString getErrorMessage() const
Definition: RemoteServiceModel.cpp:348
Q_INVOKABLE bool pinPadModeOn() const
Definition: RemoteServiceModel.cpp:378
RemoteDeviceModel * knownDevices
Definition: RemoteServiceModel.h:39
bool isConnectedToPairedDevice() const
Definition: RemoteServiceModel.cpp:319
QString connectedServerDeviceNames
Definition: RemoteServiceModel.h:37
RemoteDeviceModel * getAvailableRemoteDevices()
Definition: RemoteServiceModel.cpp:173
RemoteDeviceModel * availableRemoteDevices
Definition: RemoteServiceModel.h:38
bool runnable
Definition: RemoteServiceModel.h:30
void firePskChanged(const QByteArray &pPsk)
QString getConnectionInfo() const
Definition: RemoteServiceModel.cpp:360
bool getRemoteReaderVisible() const
Definition: RemoteServiceModel.cpp:372
void fireCertificateRemoved(const QString &pDeviceName)
bool isStarting
Definition: RemoteServiceModel.h:29
Q_INVOKABLE bool rememberServer(const QString &pDeviceId)
Definition: RemoteServiceModel.cpp:211
void firePairingSuccess(const QString &pDeviceName)
QString getConnectedServerDeviceNames() const
Definition: RemoteServiceModel.cpp:366
bool requiresLocalNetworkPermission
Definition: RemoteServiceModel.h:43
void resetRemoteServiceContext(const QSharedPointer< IfdServiceContext > &pContext=QSharedPointer< IfdServiceContext >())
Definition: RemoteServiceModel.cpp:261
Q_INVOKABLE void cancelPasswordRequest()
Definition: RemoteServiceModel.cpp:412
QByteArray getPsk() const
Definition: RemoteServiceModel.cpp:354
bool isPairing
Definition: RemoteServiceModel.h:33
bool detectRemoteDevices
Definition: RemoteServiceModel.h:40
QString errorMessage
Definition: RemoteServiceModel.h:32
bool isCanEnableNfc() const
Definition: RemoteServiceModel.cpp:342
RemoteDeviceModel * getKnownDevices()
Definition: RemoteServiceModel.cpp:179
Q_INVOKABLE void setRunning(bool pState, bool pEnablePairing=false)
Definition: RemoteServiceModel.cpp:129
void setPairing(bool pEnabled)
Definition: RemoteServiceModel.cpp:299
bool enableTransportPinLink
Definition: RemoteServiceModel.h:41
bool isRunning() const
Definition: RemoteServiceModel.cpp:123
Definition: WorkflowModel.h:23
Implementation of GeneralAuthenticate response APDUs.
Definition: CommandApdu.h:16