14#include <QElapsedTimer>
15#include <QSharedPointer>
35 const bool mActivateUi;
38 QString mCurrentState;
39 QList<ReaderManagerPluginType> mReaderPluginTypes;
41 QSharedPointer<CardConnection> mCardConnection;
42 int mCardVanishedDuringPacePinCount;
43 QElapsedTimer mCardVanishedDuringPacePinTimer;
47 PacePasswordId mEstablishPaceChannelType;
48 QScopedPointer<EstablishPaceChannelOutput> mPaceOutputData;
49 ReaderInfo mExpectedReader;
50 CardReturnCode mLastPaceResult;
52 std::optional<FailureCode> mFailureCode;
53 ECardApiResult mStartPaosResult;
54 bool mWorkflowFinished;
55 bool mWorkflowCancelled;
56 bool mWorkflowCancelledInState;
57 bool mNextWorkflowPending;
58 bool mCurrentReaderHasEidCardButInsufficientApduLength;
60 QString mProgressMessage;
61 bool mShowRemoveCardFeedback;
63 bool mInterruptRequested;
64 bool mInitialInputErrorShown;
65 bool mCardInitiallyAppeared;
68 void onWorkflowCancelled();
71 void fireStateApprovedChanged(
bool pApproved);
72 void fireStateChanged(
const QString& pNewState);
73 void fireReaderPluginTypesChanged(
bool pExplicitStart =
false);
74 void fireReaderInfoChanged();
75 void fireReaderNameChanged();
76 void fireCardConnectionChanged();
77 void fireAcceptedEidTypesChanged();
78 void fireEidTypeMismatchChanged();
79 void fireCanChanged();
80 void firePinChanged();
81 void firePukChanged();
82 void firePaceResultUpdated();
83 void fireResultChanged();
84 void fireCanAllowedModeChanged();
85 void firePasswordTypeChanged();
86 void fireProgressChanged();
87 void fireRemoveCardFeedbackChanged();
88 void fireInitialInputErrorShownChanged();
90 void fireCancelWorkflow();
92 void fireNextWorkflowPending();
95 explicit WorkflowContext(
const Action mAction,
bool pActivateUi =
true);
96 ~WorkflowContext()
override;
98 [[nodiscard]] Action getAction()
const
104 [[nodiscard]]
bool isActivateUi()
const
110 [[nodiscard]]
bool wasClaimed()
const;
111 void claim(
const QObject* pClaimant);
113 void setStateApproved(
bool pApproved =
true);
114 [[nodiscard]]
bool isStateApproved()
const;
116 void killWorkflow(GlobalStatus::Code pCode = GlobalStatus::Code::Workflow_Cancellation_By_User);
117 [[nodiscard]]
bool isWorkflowKilled()
const;
119 [[nodiscard]]
const QString& getCurrentState()
const;
120 void setCurrentState(
const QString& pNewState);
122 [[nodiscard]]
bool isSmartCardUsed()
const;
124 [[nodiscard]]
const QList<ReaderManagerPluginType>& getReaderPluginTypes()
const;
125 void setReaderPluginTypes(
const QList<ReaderManagerPluginType>& pReaderPluginTypes);
127 [[nodiscard]]
const QString& getReaderName()
const;
128 void setReaderName(
const QString& pReaderName);
130 [[nodiscard]]
const QSharedPointer<CardConnection>& getCardConnection()
const;
131 [[nodiscard]]
bool getCardInitiallyAppeared()
const;
132 void resetCardInitiallyAppeared();
133 void setCardConnection(
const QSharedPointer<CardConnection>& pCardConnection);
134 void resetCardConnection();
135 void setCardInitiallyAppeared();
137 [[nodiscard]]
bool isNpaRepositioningRequired()
const;
138 void setNpaPositionVerified();
139 void handleWrongNpaPosition();
141 [[nodiscard]]
virtual bool isRequestTransportPin()
const;
143 [[nodiscard]]
const QString& getPuk()
const;
144 void setPuk(
const QString& pPuk);
146 [[nodiscard]]
const QString& getCan()
const;
147 void setCan(
const QString& pCan);
149 [[nodiscard]]
const QString& getPin()
const;
150 void setPin(
const QString& pPin);
152 [[nodiscard]] PacePasswordId getEstablishPaceChannelType()
const;
153 void setEstablishPaceChannelType(PacePasswordId pType);
155 virtual void resetPacePasswords();
157 [[nodiscard]] EstablishPaceChannelOutput* getPaceOutputData()
const;
158 void setPaceOutputData(
const EstablishPaceChannelOutput& pPaceOutputData);
161 [[nodiscard]] CardReturnCode getLastPaceResult()
const;
162 void setLastPaceResult(CardReturnCode pLastPaceResult);
163 void resetLastPaceResult();
165 void rememberReader();
166 [[nodiscard]]
bool remembersReader()
const;
167 [[nodiscard]]
bool isExpectedReader()
const;
168 [[nodiscard]]
const ReaderInfo& getExpectedReader()
const;
170 [[nodiscard]]
int getExpectedRetryCounter()
const;
171 void setExpectedRetryCounter(
int pExpectedRetryCounter);
173 [[nodiscard]]
const GlobalStatus& getStatus()
const;
174 void setStatus(
const GlobalStatus& pResult);
176 [[nodiscard]] std::optional<FailureCode> getFailureCode()
const;
177 void setFailureCode(
const FailureCode& pFailure);
179 [[nodiscard]]
const ECardApiResult& getStartPaosResult()
const;
180 void setStartPaosResult(
const ECardApiResult& pStartPaosResult);
182 [[nodiscard]]
bool isWorkflowFinished()
const;
183 void setWorkflowFinished(
bool pWorkflowFinished);
185 [[nodiscard]]
bool isWorkflowCancelled()
const;
186 [[nodiscard]]
bool isWorkflowCancelledInState()
const;
187 void setWorkflowCancelledInState();
189 [[nodiscard]]
virtual bool isCanAllowedMode()
const;
191 [[nodiscard]]
bool hasNextWorkflowPending()
const;
192 void setNextWorkflowPending(
bool pNextWorkflowPending);
194 [[nodiscard]]
bool currentReaderHasEidCardButInsufficientApduLength()
const;
195 void setCurrentReaderHasEidCardButInsufficientApduLength(
bool pState);
197 [[nodiscard]]
int getProgressValue()
const
199 return mProgressValue;
203 [[nodiscard]]
const QString& getProgressMessage()
const
205 return mProgressMessage;
209 void setProgress(
int pValue,
const QString& pMessage);
211 [[nodiscard]]
bool showRemoveCardFeedback()
const
213 return mShowRemoveCardFeedback;
217 void setInterruptRequested(
bool pInterruptRequested);
218 [[nodiscard]]
bool interruptRequested()
const
220 return mInterruptRequested;
224 void setRemoveCardFeedback(
bool pEnabled);
226 [[nodiscard]]
virtual QList<AcceptedEidType> getAcceptedEidTypes()
const = 0;
228 [[nodiscard]]
bool eidTypeMismatch()
const;
229 [[nodiscard]]
bool isMobileEidTypeAllowed(
const MobileEidType& mobileEidType)
const;
231 [[nodiscard]]
bool isInitialInputErrorShown()
const;
232 void setInitialInputErrorShown();
#define defineEnumType(enumName,...)
Definition EnumHelper.h:81
Defines the AccessRight and AccessRole enum.
Definition CommandApdu.h:17
PERSONALIZATION
Definition MsgTypes.h:30
AUTH
Definition MsgTypes.h:29