AusweisApp2
AbstractState.h
gehe zur Dokumentation dieser Datei
1 
7 #pragma once
8 
10 
11 #include <QSharedPointer>
12 #include <QState>
13 
14 
15 namespace governikus
16 {
17 
19  : public QState
20 {
21  Q_OBJECT
22 
23  private:
24  const QSharedPointer<WorkflowContext> mContext;
25  bool mAbortOnCardRemoved;
26  bool mKeepCardConnectionAlive;
27 
28  virtual void run() = 0;
29  [[nodiscard]] bool isStartStopEnabled() const;
30 
31  protected:
32  QVector<QMetaObject::Connection> mConnections;
33 
34  explicit AbstractState(const QSharedPointer<WorkflowContext>& pContext);
35 
36  void setAbortOnCardRemoved();
38 
39  void onEntry(QEvent* pEvent) override;
40  void onExit(QEvent* pEvent) override;
41 
42  void clearConnections();
43  bool isCancellationByUser();
44  void updateStatus(const GlobalStatus& pStatus);
45  void updateStartPaosResult(const ECardApiResult& pStartPaosResult);
46 
48  void stopNfcScanIfNecessary(const QString& pError = QString());
49 
50  public:
51  static const char* const cFORCE_START_STOP_SCAN;
52  static QString getClassName(const char* const pName);
53 
54  template<typename T>
55  [[nodiscard]] static QString getClassName()
56  {
57  return getClassName(T::staticMetaObject.className());
58  }
59 
60 
61  template<typename T>
62  static bool isState(const QString& pState)
63  {
64  return pState == getClassName<T>();
65  }
66 
67 
68  ~AbstractState() override = default;
69 
70  [[nodiscard]] QString getStateName() const;
71  void setStateName(const QString& pName);
72 
73  Q_SIGNALS:
74  void fireContinue();
75  void fireAbort();
76 
77  public Q_SLOTS:
78  void onStateApprovedChanged(bool pApproved);
79  virtual void onUserCancelled();
80  void onCardRemoved(const ReaderInfo& pInfo);
81 };
82 
83 } // namespace governikus
Definition: AbstractState.h:20
virtual void onUserCancelled()
Definition: AbstractState.cpp:138
void clearConnections()
Definition: AbstractState.cpp:122
void stopNfcScanIfNecessary(const QString &pError=QString())
Definition: AbstractState.cpp:194
void onCardRemoved(const ReaderInfo &pInfo)
Definition: AbstractState.cpp:147
QString getStateName() const
Definition: AbstractState.cpp:45
bool isCancellationByUser()
Definition: AbstractState.cpp:132
void onEntry(QEvent *pEvent) override
Definition: AbstractState.cpp:79
static QString getClassName()
Definition: AbstractState.h:55
void onStateApprovedChanged(bool pApproved)
Definition: AbstractState.cpp:69
void setStateName(const QString &pName)
Definition: AbstractState.cpp:52
void onExit(QEvent *pEvent) override
Definition: AbstractState.cpp:107
void setAbortOnCardRemoved()
Definition: AbstractState.cpp:33
void updateStartPaosResult(const ECardApiResult &pStartPaosResult)
Definition: AbstractState.cpp:166
void setKeepCardConnectionAlive()
Definition: AbstractState.cpp:39
QVector< QMetaObject::Connection > mConnections
Definition: AbstractState.h:32
~AbstractState() override=default
AbstractState(const QSharedPointer< WorkflowContext > &pContext)
Definition: AbstractState.cpp:23
static const char *const cFORCE_START_STOP_SCAN
Definition: AbstractState.h:51
void startNfcScanIfNecessary()
Definition: AbstractState.cpp:183
static bool isState(const QString &pState)
Definition: AbstractState.h:62
void updateStatus(const GlobalStatus &pStatus)
Definition: AbstractState.cpp:157
Definition: ECardApiResult.h:25
Definition: GlobalStatus.h:20
Definition: ReaderInfo.h:18
A simple template renderer.
Definition: ActivationContext.h:15