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