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  const bool mConnectOnCardRemoved;
26 
27  virtual void run() = 0;
28  [[nodiscard]] bool isStartStopEnabled() const;
29 
30  protected:
31  QVector<QMetaObject::Connection> mConnections;
32 
33  explicit AbstractState(const QSharedPointer<WorkflowContext>& pContext, bool pConnectOnCardRemoved = true);
34 
35  void onExit(QEvent* pEvent) override;
36 
37  void clearConnections();
38  bool isCancellationByUser();
39  void updateStatus(const GlobalStatus& pStatus);
40  void updateStartPaosResult(const ECardApiResult& pStartPaosResult);
41 
42  void startScanIfNecessary();
43  void stopScanIfNecessary(const QString& pError = QString());
44 
45  public:
46  static const char* const cFORCE_START_STOP_SCAN;
47  static QString getClassName(const char* const pName);
48 
49  template<typename T>
50  static bool isState(const QString& pState)
51  {
52  return pState == getClassName(T::staticMetaObject.className());
53  }
54 
55 
56  ~AbstractState() override;
57 
58  void onEntry(QEvent* pEvent) override;
59 
60  [[nodiscard]] QString getStateName() const;
61  void setStateName(const QString& pName);
62 
63  Q_SIGNALS:
64  void fireContinue();
65  void fireAbort();
66 
67  public Q_SLOTS:
68  void onStateApprovedChanged(bool pApproved);
69  virtual void onUserCancelled();
70  void onCardRemoved(const ReaderInfo& pInfo);
71 };
72 
73 } // namespace governikus
void onStateApprovedChanged(bool pApproved)
Definition: AbstractState.cpp:61
void clearConnections()
Definition: AbstractState.cpp:103
virtual void onUserCancelled()
Definition: AbstractState.cpp:119
void startScanIfNecessary()
Definition: AbstractState.cpp:164
void onExit(QEvent *pEvent) override
Definition: AbstractState.cpp:93
AbstractState(const QSharedPointer< WorkflowContext > &pContext, bool pConnectOnCardRemoved=true)
Definition: AbstractState.cpp:23
Definition: ECardApiResult.h:24
Definition: GlobalStatus.h:19
static const char *const cFORCE_START_STOP_SCAN
Definition: AbstractState.h:46
Definition: AbstractState.h:18
Definition: ReaderInfo.h:16
bool isCancellationByUser()
Definition: AbstractState.cpp:113
void updateStartPaosResult(const ECardApiResult &pStartPaosResult)
Definition: AbstractState.cpp:147
Implementation of ActivationContext for Intent based activation on Android systems.
Definition: ActivationContext.h:14
static QString getClassName(const char *const pName)
Definition: AbstractState.cpp:50
QString getStateName() const
Definition: AbstractState.cpp:37
static bool isState(const QString &pState)
Definition: AbstractState.h:50
void onCardRemoved(const ReaderInfo &pInfo)
Definition: AbstractState.cpp:128
void setStateName(const QString &pName)
Definition: AbstractState.cpp:44
~AbstractState() override
Definition: AbstractState.cpp:32
void stopScanIfNecessary(const QString &pError=QString())
Definition: AbstractState.cpp:175
void updateStatus(const GlobalStatus &pStatus)
Definition: AbstractState.cpp:138
QVector< QMetaObject::Connection > mConnections
Definition: AbstractState.h:31
void onEntry(QEvent *pEvent) override
Definition: AbstractState.cpp:71