AusweisApp
Lade ...
Suche ...
Keine Treffer
RemoteServiceModel.h
gehe zur Dokumentation dieser Datei
1
9#pragma once
10
11#include "Env.h"
13#include "RemoteDeviceModel.h"
14#include "WorkflowModel.h"
15#include "WorkflowRequest.h"
17
18#include <QObject>
19#include <QQmlEngine>
20
21
22class test_UIPlugInQml;
23
24
25namespace governikus
26{
27
29 : public WorkflowModel
30{
31 Q_OBJECT
32 friend class Env;
33 friend class ::test_UIPlugInQml;
34
35 Q_PROPERTY(bool running READ isRunning NOTIFY fireIsRunningChanged)
36 Q_PROPERTY(bool isStarting READ isStarting NOTIFY fireIsStartingChanged)
37 Q_PROPERTY(bool runnable READ isRunnable NOTIFY fireEnvironmentChanged)
38 Q_PROPERTY(bool canEnableNfc READ isCanEnableNfc NOTIFY fireEnvironmentChanged)
39 Q_PROPERTY(QString errorMessage READ getErrorMessage NOTIFY fireEnvironmentChanged)
40 Q_PROPERTY(bool isPairing READ isPairing NOTIFY firePskChanged)
41 Q_PROPERTY(QByteArray psk READ getPsk NOTIFY firePskChanged)
42 Q_PROPERTY(QString displayText READ getDisplayText NOTIFY fireDisplayTextChanged)
43 Q_PROPERTY(int percentage READ getPercentage NOTIFY fireDisplayTextChanged)
45 Q_PROPERTY(QString connectionInfo READ getConnectionInfo NOTIFY fireConnectionInfoChanged)
47 Q_PROPERTY(RemoteDeviceModel * allDevices READ getAllDevices CONSTANT)
54 Q_PROPERTY(bool requiresLocalNetworkPermission MEMBER mRequiresLocalNetworkPermission CONSTANT)
57
58 private:
59 QSharedPointer<IfdServiceContext> mContext;
60 bool mRunnable;
61 bool mIsStarting;
62 bool mCanEnableNfc;
63 bool mPairingRequested;
64 QString mErrorMessage;
65 QByteArray mPsk;
66 RemoteDeviceModel mAllDevices;
67 RemoteDeviceFilterModel mAvailableDevicesInPairingMode;
68 RemoteDeviceFilterModel mAvailablePairedDevices;
69 RemoteDeviceFilterModel mUnavailablePairedDevices;
70 QString mConnectionInfo;
71 QString mConnectedServerDeviceNames;
72 QSharedPointer<IfdListEntry> mRememberedServerEntry;
73 const bool mRequiresLocalNetworkPermission;
74#if defined(Q_OS_IOS)
75 bool mWasRunning;
76 bool mWasPairing;
77#endif
78
80 ~RemoteServiceModel() override = default;
81
82 QString getErrorMessage(bool pNfcPluginAvailable, bool pNfcPluginEnabled, bool pWifiEnabled) const;
83
84 void setStarting(bool pStarting);
85
86 private Q_SLOTS:
87 void onEstablishConnectionDone(const QSharedPointer<IfdListEntry>& pEntry, const GlobalStatus& pStatus);
88 void onConnectionInfoChanged(bool pConnected);
89 void onCardConnected(const QSharedPointer<CardConnection>& pConnection) const;
90 void onCardDisconnected(const QSharedPointer<CardConnection>& pConnection) const;
91 void onConnectedDevicesChanged();
92 void onEnvironmentChanged();
93 void onApplicationStateChanged(const bool pIsAppInForeground);
94 void onPairingCompleted(const QSslCertificate& pCertificate);
95 void onNameChanged();
96
97 public Q_SLOTS:
99 void onReaderPlugInTypesChanged(bool pExplicitStart);
100
101 public:
102 [[nodiscard]] bool isRunning() const;
103 Q_INVOKABLE void setRunning(bool pState, bool pEnablePairing = false);
104 [[nodiscard]] bool isStarting() const;
105
106
107 [[nodiscard]] RemoteDeviceModel* getAllDevices();
111 void setDetectRemoteDevices(bool pNewStatus);
112 [[nodiscard]] bool detectRemoteDevices() const;
113 Q_INVOKABLE bool rememberServer(const QString& pDeviceId);
114 Q_INVOKABLE void connectToRememberedServer(const QString& pServerPsk);
115 [[nodiscard]] QList<ReaderManagerPlugInType> getSupportedReaderPlugInTypes() const override;
116
117 void resetRemoteServiceContext(const QSharedPointer<IfdServiceContext>& pContext = QSharedPointer<IfdServiceContext>());
118 void setPairing(bool pEnabled) const;
119 [[nodiscard]] bool isPairing() const;
120 [[nodiscard]] bool isConnectedToPairedDevice() const;
121 [[nodiscard]] bool enableTransportPinLink() const;
122 [[nodiscard]] bool isRunnable() const;
123 [[nodiscard]] bool isCanEnableNfc() const;
124 [[nodiscard]] QString getErrorMessage() const;
125 [[nodiscard]] QByteArray getPsk() const;
126 [[nodiscard]] QString getDisplayText() const;
127 [[nodiscard]] int getPercentage() const;
128 [[nodiscard]] QString getConnectionInfo() const;
129 [[nodiscard]] QString getConnectedServerDeviceNames() const;
130 [[nodiscard]] bool getRemoteReaderVisible() const;
131 [[nodiscard]] QString getTransactionInfo() const;
132 [[nodiscard]] QString getConnectedClientName() const;
133
134 [[nodiscard]] Q_INVOKABLE bool pinPadModeOn() const;
135 Q_INVOKABLE void forgetDevice(const QString& pId);
136 Q_INVOKABLE void cancelPasswordRequest();
137 Q_INVOKABLE void changePinLength();
138 [[nodiscard]] Q_INVOKABLE bool isPinAuthentication() const;
139
140 Q_SIGNALS:
141 void fireStartWorkflow(const QSharedPointer<WorkflowRequest>& pRequest);
145 void firePskChanged(const QByteArray& pPsk);
150 void firePairingFailed(const QString& pDeviceName, const QString& pErrorMessage);
151 void firePairingSuccess(const QString& pDeviceName);
157 void fireCertificateRemoved(const QString& pDeviceName);
159};
160
161
162} // namespace governikus
Definition Env.h:42
Definition GlobalStatus.h:22
Definition RemoteDeviceFilterModel.h:16
Definition RemoteDeviceModel.h:33
Definition RemoteServiceModel.h:30
RemoteDeviceFilterModel * getAvailablePairedDevices()
Definition RemoteServiceModel.cpp:238
QByteArray psk
Definition RemoteServiceModel.h:41
Q_INVOKABLE void connectToRememberedServer(const QString &pServerPsk)
Definition RemoteServiceModel.cpp:268
RemoteDeviceFilterModel * getUnavailablePairedDevices()
Definition RemoteServiceModel.cpp:250
void onReaderPlugInTypesChanged(bool pExplicitStart)
Definition RemoteServiceModel.cpp:147
Q_INVOKABLE void changePinLength()
Definition RemoteServiceModel.cpp:541
QString connectedClientName
Definition RemoteServiceModel.h:56
bool running
Definition RemoteServiceModel.h:35
RemoteDeviceFilterModel * unavailablePairedDevices
Definition RemoteServiceModel.h:50
bool remoteReaderVisible
Definition RemoteServiceModel.h:53
void setDetectRemoteDevices(bool pNewStatus)
Definition RemoteServiceModel.cpp:256
int getPercentage() const
Definition RemoteServiceModel.cpp:454
bool connectedToPairedDevice
Definition RemoteServiceModel.h:44
bool isRunnable() const
Definition RemoteServiceModel.cpp:423
QString transactionInfo
Definition RemoteServiceModel.h:55
void fireStartWorkflow(const QSharedPointer< WorkflowRequest > &pRequest)
void firePairingFailed(const QString &pDeviceName, const QString &pErrorMessage)
Q_INVOKABLE void forgetDevice(const QString &pId)
Definition RemoteServiceModel.cpp:526
bool canEnableNfc
Definition RemoteServiceModel.h:38
void onTranslationChanged()
Definition RemoteServiceModel.cpp:141
bool isPairing
Definition RemoteServiceModel.h:40
QString connectionInfo
Definition RemoteServiceModel.h:45
RemoteDeviceFilterModel * availableDevicesInPairingMode
Definition RemoteServiceModel.h:48
QList< ReaderManagerPlugInType > getSupportedReaderPlugInTypes() const override
Definition RemoteServiceModel.cpp:281
RemoteDeviceModel * getAllDevices()
Definition RemoteServiceModel.cpp:232
QString getErrorMessage() const
Definition RemoteServiceModel.cpp:435
Q_INVOKABLE bool pinPadModeOn() const
Definition RemoteServiceModel.cpp:498
bool isConnectedToPairedDevice() const
Definition RemoteServiceModel.cpp:406
RemoteDeviceModel * allDevices
Definition RemoteServiceModel.h:47
QString connectedServerDeviceNames
Definition RemoteServiceModel.h:46
bool runnable
Definition RemoteServiceModel.h:37
void firePskChanged(const QByteArray &pPsk)
void setPairing(bool pEnabled) const
Definition RemoteServiceModel.cpp:386
QString getConnectionInfo() const
Definition RemoteServiceModel.cpp:461
bool getRemoteReaderVisible() const
Definition RemoteServiceModel.cpp:473
void fireCertificateRemoved(const QString &pDeviceName)
bool isStarting
Definition RemoteServiceModel.h:36
Q_INVOKABLE bool rememberServer(const QString &pDeviceId)
Definition RemoteServiceModel.cpp:293
void firePairingSuccess(const QString &pDeviceName)
QString getConnectedServerDeviceNames() const
Definition RemoteServiceModel.cpp:467
bool requiresLocalNetworkPermission
Definition RemoteServiceModel.h:54
void resetRemoteServiceContext(const QSharedPointer< IfdServiceContext > &pContext=QSharedPointer< IfdServiceContext >())
Definition RemoteServiceModel.cpp:345
Q_INVOKABLE void cancelPasswordRequest()
Definition RemoteServiceModel.cpp:532
QByteArray getPsk() const
Definition RemoteServiceModel.cpp:441
RemoteDeviceFilterModel * availablePairedDevices
Definition RemoteServiceModel.h:49
QString getTransactionInfo() const
Definition RemoteServiceModel.cpp:479
bool detectRemoteDevices
Definition RemoteServiceModel.h:51
QString errorMessage
Definition RemoteServiceModel.h:39
bool isCanEnableNfc() const
Definition RemoteServiceModel.cpp:429
RemoteDeviceFilterModel * getAvailableDevicesInPairingMode()
Definition RemoteServiceModel.cpp:244
Q_INVOKABLE void setRunning(bool pState, bool pEnablePairing=false)
Definition RemoteServiceModel.cpp:188
Q_INVOKABLE bool isPinAuthentication() const
Definition RemoteServiceModel.cpp:550
int percentage
Definition RemoteServiceModel.h:43
QString getDisplayText() const
Definition RemoteServiceModel.cpp:447
bool enableTransportPinLink
Definition RemoteServiceModel.h:52
QString getConnectedClientName() const
Definition RemoteServiceModel.cpp:485
bool isRunning() const
Definition RemoteServiceModel.cpp:182
QString displayText
Definition RemoteServiceModel.h:42
Definition WorkflowModel.h:26
Implementation of GeneralAuthenticate response APDUs.
Definition CommandApdu.h:16