15#include <QElapsedTimer>
16#include <QSharedPointer>
37 QString mCurrentState;
38 QVector<ReaderManagerPlugInType> mReaderPlugInTypes;
40 QSharedPointer<CardConnection> mCardConnection;
41 int mCardVanishedDuringPacePinCount;
42 QElapsedTimer mCardVanishedDuringPacePinTimer;
46 PacePasswordId mEstablishPaceChannelType;
47 QScopedPointer<EstablishPaceChannelOutput> mPaceOutputData;
48 ReaderInfo mExpectedReader;
49 CardReturnCode mLastPaceResult;
51 ECardApiResult mStartPaosResult;
52 bool mErrorReportedToUser;
53 bool mPaceResultReportedToUser;
54 bool mWorkflowFinished;
55 bool mWorkflowCancelled;
56 bool mWorkflowCancelledInState;
57 bool mNextWorkflowPending;
58 bool mCurrentReaderHasEidCardButInsufficientApduLength;
61 QString mProgressMessage;
62 bool mShowRemoveCardFeedback;
66 void onWorkflowCancelled();
69 void fireStateApprovedChanged(
bool pApproved);
70 void fireStateChanged(
const QString& pNewState);
71 void fireReaderPlugInTypesChanged();
72 void fireReaderInfoChanged();
73 void fireReaderNameChanged();
74 void fireCardConnectionChanged();
75 void fireIsSmartCardAllowedChanged();
76 void fireCanChanged();
77 void firePinChanged();
78 void firePukChanged();
79 void firePaceResultUpdated();
80 void fireResultChanged();
81 void fireCanAllowedModeChanged();
82 void firePasswordTypeChanged();
83 void fireProgressChanged();
84 void fireRemoveCardFeedbackChanged();
86 void fireCancelWorkflow();
88 void fireNextWorkflowPending();
91 explicit WorkflowContext(
const Action mAction);
92 ~WorkflowContext()
override;
94 [[nodiscard]] Action getAction()
const
100 [[nodiscard]]
bool wasClaimed()
const;
101 void claim(
const QObject* pClaimant);
103 [[nodiscard]]
bool isErrorReportedToUser()
const;
104 void setErrorReportedToUser(
bool pErrorReportedToUser =
true);
106 [[nodiscard]]
bool isPaceResultReportedToUser()
const;
107 void setPaceResultReportedToUser(
bool pReported =
true);
109 void setStateApproved(
bool pApproved =
true);
110 [[nodiscard]]
bool isStateApproved()
const;
112 void killWorkflow(GlobalStatus::Code pCode = GlobalStatus::Code::Workflow_Cancellation_By_User);
113 [[nodiscard]]
bool isWorkflowKilled()
const;
115 [[nodiscard]]
const QString& getCurrentState()
const;
116 void setCurrentState(
const QString& pNewState);
118 [[nodiscard]]
bool isSmartCardUsed()
const;
120 [[nodiscard]]
const QVector<ReaderManagerPlugInType>& getReaderPlugInTypes()
const;
121 void setReaderPlugInTypes(
const QVector<ReaderManagerPlugInType>& pReaderPlugInTypes);
123 [[nodiscard]]
const QString& getReaderName()
const;
124 void setReaderName(
const QString& pReaderName);
126 [[nodiscard]]
const QSharedPointer<CardConnection>& getCardConnection()
const;
127 void setCardConnection(
const QSharedPointer<CardConnection>& pCardConnection);
128 void resetCardConnection();
130 [[nodiscard]]
bool isNpaRepositioningRequired()
const;
131 void setNpaPositionVerified();
132 void handleWrongNpaPosition();
134 [[nodiscard]]
virtual bool isRequestTransportPin()
const;
136 [[nodiscard]]
const QString& getPuk()
const;
137 void setPuk(
const QString& pPuk);
139 [[nodiscard]]
const QString& getCan()
const;
140 void setCan(
const QString& pCan);
142 [[nodiscard]]
const QString& getPin()
const;
143 void setPin(
const QString& pPin);
145 [[nodiscard]] PacePasswordId getEstablishPaceChannelType()
const;
146 void setEstablishPaceChannelType(PacePasswordId pType);
148 virtual void resetPacePasswords();
150 [[nodiscard]] EstablishPaceChannelOutput* getPaceOutputData()
const;
151 void setPaceOutputData(
const EstablishPaceChannelOutput& pPaceOutputData);
154 [[nodiscard]] CardReturnCode getLastPaceResult()
const;
155 void setLastPaceResult(CardReturnCode pLastPaceResult);
156 void resetLastPaceResult();
158 void rememberReader();
159 [[nodiscard]]
bool remembersReader()
const;
160 [[nodiscard]]
bool isExpectedReader()
const;
161 [[nodiscard]]
const ReaderInfo& getExpectedReader()
const;
163 [[nodiscard]]
int getExpectedRetryCounter()
const;
164 void setExpectedRetryCounter(
int pExpectedRetryCounter);
166 [[nodiscard]]
const GlobalStatus& getStatus()
const;
167 void setStatus(
const GlobalStatus& pResult);
169 [[nodiscard]]
const ECardApiResult& getStartPaosResult()
const;
170 void setStartPaosResult(
const ECardApiResult& pStartPaosResult);
172 [[nodiscard]]
bool isWorkflowFinished()
const;
173 void setWorkflowFinished(
bool pWorkflowFinished);
175 [[nodiscard]]
bool isWorkflowCancelled()
const;
176 [[nodiscard]]
bool isWorkflowCancelledInState()
const;
177 void setWorkflowCancelledInState();
179 [[nodiscard]]
virtual bool isCanAllowedMode()
const;
181 [[nodiscard]]
bool hasNextWorkflowPending()
const;
182 void setNextWorkflowPending(
bool pNextWorkflowPending);
184 [[nodiscard]]
bool currentReaderHasEidCardButInsufficientApduLength()
const;
185 void setCurrentReaderHasEidCardButInsufficientApduLength(
bool pState);
187 [[nodiscard]]
bool skipStartScan()
const;
188 void setSkipStartScan(
bool pState);
190 [[nodiscard]]
int getProgressValue()
const
192 return mProgressValue;
196 [[nodiscard]]
const QString& getProgressMessage()
const
198 return mProgressMessage;
202 void setProgress(
int pValue,
const QString& pMessage);
204 [[nodiscard]]
bool showRemoveCardFeedback()
const
206 return mShowRemoveCardFeedback;
210 void setRemoveCardFeedback(
bool pEnabled);
212 [[nodiscard]]
virtual QVector<AcceptedEidType> getAcceptedEidTypes()
const = 0;
214 bool isPhysicalCardRequired()
const;
#define defineEnumType(enumName,...)
Definition: EnumHelper.h:96
Implementation of GeneralAuthenticate response APDUs.
Definition: CommandApdu.h:16
PERSONALIZATION
Definition: MsgTypes.h:31
AUTH
Definition: MsgTypes.h:30