AusweisApp2
Lade ...
Suche ...
Keine Treffer
RemoteServiceModel.h
gehe zur Dokumentation dieser Datei
1
9#pragma once
10
11#include "Env.h"
12#include "ReaderManager.h"
14#include "RemoteDeviceModel.h"
15#include "WorkflowModel.h"
16#include "WorkflowRequest.h"
18
19#include <QObject>
20#include <QQmlEngine>
21
22namespace governikus
23{
24
26 : public WorkflowModel
27{
28 Q_OBJECT
29 friend class Env;
30
31 Q_PROPERTY(bool running READ isRunning NOTIFY fireIsRunningChanged)
32 Q_PROPERTY(bool isStarting READ isStarting NOTIFY fireIsStartingChanged)
33 Q_PROPERTY(bool runnable READ isRunnable NOTIFY fireEnvironmentChanged)
34 Q_PROPERTY(bool canEnableNfc READ isCanEnableNfc NOTIFY fireEnvironmentChanged)
35 Q_PROPERTY(QString errorMessage READ getErrorMessage NOTIFY fireEnvironmentChanged)
36 Q_PROPERTY(bool isPairing READ isPairing NOTIFY firePskChanged)
37 Q_PROPERTY(QByteArray psk READ getPsk NOTIFY firePskChanged)
38 Q_PROPERTY(QString displayText READ getDisplayText NOTIFY fireDisplayTextChanged)
39 Q_PROPERTY(int percentage READ getPercentage NOTIFY fireDisplayTextChanged)
41 Q_PROPERTY(QString connectionInfo READ getConnectionInfo NOTIFY fireConnectionInfoChanged)
43 Q_PROPERTY(RemoteDeviceModel * allDevices READ getAllDevices CONSTANT)
50 Q_PROPERTY(bool requiresLocalNetworkPermission MEMBER mRequiresLocalNetworkPermission CONSTANT)
53
54 private:
55 QSharedPointer<IfdServiceContext> mContext;
56 bool mRunnable;
57 bool mIsStarting;
58 bool mCanEnableNfc;
59 bool mPairingRequested;
60 QString mErrorMessage;
61 QByteArray mPsk;
62 RemoteDeviceModel mAllDevices;
63 RemoteDeviceFilterModel mAvailableDevicesInPairingMode;
64 RemoteDeviceFilterModel mAvailablePairedDevices;
65 RemoteDeviceFilterModel mUnavailablePairedDevices;
66 QString mConnectionInfo;
67 QString mConnectedServerDeviceNames;
68 QSharedPointer<IfdListEntry> mRememberedServerEntry;
69 const bool mRequiresLocalNetworkPermission;
70#if defined(Q_OS_IOS)
71 bool mWasRunning;
72 bool mWasPairing;
73#endif
74
76 ~RemoteServiceModel() override = default;
77
78 QString getErrorMessage(bool pNfcPluginAvailable, bool pNfcPluginEnabled, bool pWifiEnabled) const;
79
80 void setStarting(bool pStarting);
81
82 private Q_SLOTS:
83 void onEstablishConnectionDone(const QSharedPointer<IfdListEntry>& pEntry, const GlobalStatus& pStatus);
84 void onConnectionInfoChanged(bool pConnected);
85 void onCardConnected(const QSharedPointer<CardConnection>& pConnection);
86 void onCardDisconnected(const QSharedPointer<CardConnection>& pConnection);
87 void onConnectedDevicesChanged();
88 void onEnvironmentChanged();
89 void onApplicationStateChanged(const bool pIsAppInForeground);
90 void onPairingCompleted(const QSslCertificate& pCertificate);
91
92 public Q_SLOTS:
94 void onReaderPlugInTypesChanged(bool pExplicitStart);
95
96 public:
97 [[nodiscard]] bool isRunning() const;
98 Q_INVOKABLE void setRunning(bool pState, bool pEnablePairing = false);
99 [[nodiscard]] bool isStarting() const;
100
101
102 [[nodiscard]] RemoteDeviceModel* getAllDevices();
106 void setDetectRemoteDevices(bool pNewStatus);
107 [[nodiscard]] bool detectRemoteDevices() const;
108 Q_INVOKABLE bool rememberServer(const QString& pDeviceId);
109 Q_INVOKABLE void connectToRememberedServer(const QString& pServerPsk);
110 [[nodiscard]] QVector<ReaderManagerPlugInType> getSupportedReaderPlugInTypes() const override;
111
112 void resetRemoteServiceContext(const QSharedPointer<IfdServiceContext>& pContext = QSharedPointer<IfdServiceContext>());
113 void setPairing(bool pEnabled);
114 [[nodiscard]] bool isPairing();
115 [[nodiscard]] bool isConnectedToPairedDevice() const;
116 [[nodiscard]] bool enableTransportPinLink() const;
117 [[nodiscard]] bool isRunnable() const;
118 [[nodiscard]] bool isCanEnableNfc() const;
119 [[nodiscard]] QString getErrorMessage() const;
120 [[nodiscard]] QByteArray getPsk() const;
121 [[nodiscard]] QString getDisplayText() const;
122 [[nodiscard]] int getPercentage() const;
123 [[nodiscard]] QString getConnectionInfo() const;
124 [[nodiscard]] QString getConnectedServerDeviceNames() const;
125 [[nodiscard]] bool getRemoteReaderVisible() const;
126 [[nodiscard]] QString getTransactionInfo() const;
127 [[nodiscard]] QString getConnectedClientName() const;
128
129 [[nodiscard]] Q_INVOKABLE bool pinPadModeOn() const;
130 Q_INVOKABLE void forgetDevice(const QString& pId);
131 Q_INVOKABLE void cancelPasswordRequest();
132 Q_INVOKABLE void changePinLength();
133
134 Q_SIGNALS:
135 void fireStartWorkflow(const QSharedPointer<WorkflowRequest>& pRequest);
139 void firePskChanged(const QByteArray& pPsk);
144 void firePairingFailed(const QString& pDeviceName, const QString& pErrorMessage);
151 void fireCertificateRemoved(const QString& pDeviceName);
153};
154
155
156} // namespace governikus
Definition Env.h:46
Definition GlobalStatus.h:22
Definition RemoteDeviceFilterModel.h:16
Definition RemoteDeviceModel.h:77
Definition RemoteServiceModel.h:27
RemoteDeviceFilterModel * getAvailablePairedDevices()
Definition RemoteServiceModel.cpp:232
QByteArray psk
Definition RemoteServiceModel.h:37
Q_INVOKABLE void connectToRememberedServer(const QString &pServerPsk)
Definition RemoteServiceModel.cpp:262
RemoteDeviceFilterModel * getUnavailablePairedDevices()
Definition RemoteServiceModel.cpp:244
void onReaderPlugInTypesChanged(bool pExplicitStart)
Definition RemoteServiceModel.cpp:151
Q_INVOKABLE void changePinLength()
Definition RemoteServiceModel.cpp:533
QString connectedClientName
Definition RemoteServiceModel.h:52
bool running
Definition RemoteServiceModel.h:31
RemoteDeviceFilterModel * unavailablePairedDevices
Definition RemoteServiceModel.h:46
bool remoteReaderVisible
Definition RemoteServiceModel.h:49
void setDetectRemoteDevices(bool pNewStatus)
Definition RemoteServiceModel.cpp:250
int getPercentage() const
Definition RemoteServiceModel.cpp:446
bool connectedToPairedDevice
Definition RemoteServiceModel.h:40
bool isRunnable() const
Definition RemoteServiceModel.cpp:415
QString transactionInfo
Definition RemoteServiceModel.h:51
void fireStartWorkflow(const QSharedPointer< WorkflowRequest > &pRequest)
void firePairingFailed(const QString &pDeviceName, const QString &pErrorMessage)
Q_INVOKABLE void forgetDevice(const QString &pId)
Definition RemoteServiceModel.cpp:518
bool canEnableNfc
Definition RemoteServiceModel.h:34
void onTranslationChanged()
Definition RemoteServiceModel.cpp:145
QString connectionInfo
Definition RemoteServiceModel.h:41
RemoteDeviceFilterModel * availableDevicesInPairingMode
Definition RemoteServiceModel.h:44
RemoteDeviceModel * getAllDevices()
Definition RemoteServiceModel.cpp:226
QString getErrorMessage() const
Definition RemoteServiceModel.cpp:427
Q_INVOKABLE bool pinPadModeOn() const
Definition RemoteServiceModel.cpp:490
bool isConnectedToPairedDevice() const
Definition RemoteServiceModel.cpp:398
RemoteDeviceModel * allDevices
Definition RemoteServiceModel.h:43
QString connectedServerDeviceNames
Definition RemoteServiceModel.h:42
bool runnable
Definition RemoteServiceModel.h:33
void firePskChanged(const QByteArray &pPsk)
QString getConnectionInfo() const
Definition RemoteServiceModel.cpp:453
bool getRemoteReaderVisible() const
Definition RemoteServiceModel.cpp:465
void fireCertificateRemoved(const QString &pDeviceName)
bool isStarting
Definition RemoteServiceModel.h:32
Q_INVOKABLE bool rememberServer(const QString &pDeviceId)
Definition RemoteServiceModel.cpp:287
QString getConnectedServerDeviceNames() const
Definition RemoteServiceModel.cpp:459
QVector< ReaderManagerPlugInType > getSupportedReaderPlugInTypes() const override
Definition RemoteServiceModel.cpp:275
bool requiresLocalNetworkPermission
Definition RemoteServiceModel.h:50
void resetRemoteServiceContext(const QSharedPointer< IfdServiceContext > &pContext=QSharedPointer< IfdServiceContext >())
Definition RemoteServiceModel.cpp:339
Q_INVOKABLE void cancelPasswordRequest()
Definition RemoteServiceModel.cpp:524
QByteArray getPsk() const
Definition RemoteServiceModel.cpp:433
RemoteDeviceFilterModel * availablePairedDevices
Definition RemoteServiceModel.h:45
QString getTransactionInfo() const
Definition RemoteServiceModel.cpp:471
bool isPairing
Definition RemoteServiceModel.h:36
bool detectRemoteDevices
Definition RemoteServiceModel.h:47
QString errorMessage
Definition RemoteServiceModel.h:35
bool isCanEnableNfc() const
Definition RemoteServiceModel.cpp:421
RemoteDeviceFilterModel * getAvailableDevicesInPairingMode()
Definition RemoteServiceModel.cpp:238
Q_INVOKABLE void setRunning(bool pState, bool pEnablePairing=false)
Definition RemoteServiceModel.cpp:182
int percentage
Definition RemoteServiceModel.h:39
void setPairing(bool pEnabled)
Definition RemoteServiceModel.cpp:378
QString getDisplayText() const
Definition RemoteServiceModel.cpp:439
bool enableTransportPinLink
Definition RemoteServiceModel.h:48
QString getConnectedClientName() const
Definition RemoteServiceModel.cpp:477
bool isRunning() const
Definition RemoteServiceModel.cpp:176
QString displayText
Definition RemoteServiceModel.h:38
Definition WorkflowModel.h:25
Implementation of GeneralAuthenticate response APDUs.
Definition CommandApdu.h:16