AusweisApp2
MsgContext.h
gehe zur Dokumentation dieser Datei
1 
7 #pragma once
8 
9 #include "Msg.h"
10 #include "MsgTypes.h"
12 
13 namespace governikus
14 {
15 
17 {
18  Q_DISABLE_COPY(MsgContext)
19 
20  private:
21  MsgLevel mApiLevel;
22  QVector<Msg> mStateMessages;
23  bool mProgressStatus;
24  QSharedPointer<WorkflowContext> mContext;
25 
26  protected:
27  void addStateMsg(const Msg& pMsg);
28  void clear();
29  void setWorkflowContext(const QSharedPointer<WorkflowContext>& pContext);
30 
31  public:
32  MsgContext();
33 
34  void setApiLevel(MsgLevel pApiLevel);
35  [[nodiscard]] MsgLevel getApiLevel() const;
36 
37  [[nodiscard]] Msg getLastStateMsg() const;
38 
39  [[nodiscard]] bool provideProgressStatus() const;
40  void setProgressStatus(bool pStatus);
41 
42  [[nodiscard]] bool isActiveWorkflow() const;
43 
44  template<typename T = WorkflowContext>
45  QSharedPointer<const T> getContext() const
46  {
47  static_assert(std::is_base_of_v<WorkflowContext, T>, "T must derive WorkflowContext");
48 
49  if (mContext)
50  {
51  return mContext.objectCast<const T>();
52  }
53 
54  return QSharedPointer<const T>();
55  }
56 
57 
58  template<typename T = WorkflowContext>
59  QSharedPointer<T> getContext()
60  {
61  static_assert(std::is_base_of_v<WorkflowContext, T>, "T must derive WorkflowContext");
62 
63  if (mContext)
64  {
65  return mContext.objectCast<T>();
66  }
67 
68  return QSharedPointer<T>();
69  }
70 
71 
72 };
73 
75  : public MsgContext
76 {
77  public:
79  using MsgContext::clear;
81 };
82 
83 } // namespace governikus
Definition: MsgContext.h:17
bool isActiveWorkflow() const
Definition: MsgContext.cpp:23
MsgContext()
Definition: MsgContext.cpp:14
void clear()
Definition: MsgContext.cpp:76
QSharedPointer< const T > getContext() const
Definition: MsgContext.h:45
QSharedPointer< T > getContext()
Definition: MsgContext.h:59
MsgLevel getApiLevel() const
Definition: MsgContext.cpp:35
void setApiLevel(MsgLevel pApiLevel)
Definition: MsgContext.cpp:29
void setWorkflowContext(const QSharedPointer< WorkflowContext > &pContext)
Definition: MsgContext.cpp:64
void addStateMsg(const Msg &pMsg)
Definition: MsgContext.cpp:70
void setProgressStatus(bool pStatus)
Definition: MsgContext.cpp:58
Msg getLastStateMsg() const
Definition: MsgContext.cpp:41
bool provideProgressStatus() const
Definition: MsgContext.cpp:52
Definition: MsgContext.h:76
Definition: Msg.h:16
#define T(v)
Definition: http_parser.cpp:237
A simple template renderer.
Definition: ActivationContext.h:15