18#include <QElapsedTimer>
19#include <QSharedPointer>
41 QString mCurrentState;
42 QVector<ReaderManagerPlugInType> mReaderPlugInTypes;
44 QSharedPointer<CardConnection> mCardConnection;
45 int mCardVanishedDuringPacePinCount;
46 QElapsedTimer mCardVanishedDuringPacePinTimer;
50 PacePasswordId mEstablishPaceChannelType;
51 QScopedPointer<EstablishPaceChannelOutput> mPaceOutputData;
52 ReaderInfo mExpectedReader;
53 CardReturnCode mLastPaceResult;
55 std::optional<FailureCode> mFailureCode;
56 ECardApiResult mStartPaosResult;
57 bool mErrorReportedToUser;
58 bool mPaceResultReportedToUser;
59 bool mWorkflowFinished;
60 bool mWorkflowCancelled;
61 bool mWorkflowCancelledInState;
62 bool mNextWorkflowPending;
63 bool mCurrentReaderHasEidCardButInsufficientApduLength;
66 QString mProgressMessage;
67 bool mShowRemoveCardFeedback;
69 bool mInterruptRequested;
72 void onWorkflowCancelled();
75 void fireStateApprovedChanged(
bool pApproved);
76 void fireStateChanged(
const QString& pNewState);
77 void fireReaderPlugInTypesChanged(
bool pExplicitStart =
false);
78 void fireReaderInfoChanged();
79 void fireReaderNameChanged();
80 void fireCardConnectionChanged();
81 void fireIsSmartCardAllowedChanged();
82 void fireCanChanged();
83 void firePinChanged();
84 void firePukChanged();
85 void firePaceResultUpdated();
86 void fireResultChanged();
87 void fireCanAllowedModeChanged();
88 void firePasswordTypeChanged();
89 void fireProgressChanged();
90 void fireRemoveCardFeedbackChanged();
92 void fireCancelWorkflow();
94 void fireNextWorkflowPending();
97 explicit WorkflowContext(
const Action mAction);
98 ~WorkflowContext()
override;
100 [[nodiscard]] Action getAction()
const
106 [[nodiscard]]
bool wasClaimed()
const;
107 void claim(
const QObject* pClaimant);
109 [[nodiscard]]
bool isErrorReportedToUser()
const;
110 void setErrorReportedToUser(
bool pErrorReportedToUser =
true);
112 [[nodiscard]]
bool isPaceResultReportedToUser()
const;
113 void setPaceResultReportedToUser(
bool pReported =
true);
115 void setStateApproved(
bool pApproved =
true);
116 [[nodiscard]]
bool isStateApproved()
const;
118 void killWorkflow(GlobalStatus::Code pCode = GlobalStatus::Code::Workflow_Cancellation_By_User);
119 [[nodiscard]]
bool isWorkflowKilled()
const;
121 [[nodiscard]]
const QString& getCurrentState()
const;
122 void setCurrentState(
const QString& pNewState);
124 [[nodiscard]]
bool isSmartCardUsed()
const;
126 [[nodiscard]]
const QVector<ReaderManagerPlugInType>& getReaderPlugInTypes()
const;
127 void setReaderPlugInTypes(
const QVector<ReaderManagerPlugInType>& pReaderPlugInTypes);
129 [[nodiscard]]
const QString& getReaderName()
const;
130 void setReaderName(
const QString& pReaderName);
132 [[nodiscard]]
const QSharedPointer<CardConnection>& getCardConnection()
const;
133 void setCardConnection(
const QSharedPointer<CardConnection>& pCardConnection);
134 void resetCardConnection();
136 [[nodiscard]]
bool isNpaRepositioningRequired()
const;
137 void setNpaPositionVerified();
138 void handleWrongNpaPosition();
140 [[nodiscard]]
virtual bool isRequestTransportPin()
const;
142 [[nodiscard]]
const QString& getPuk()
const;
143 void setPuk(
const QString& pPuk);
145 [[nodiscard]]
const QString& getCan()
const;
146 void setCan(
const QString& pCan);
148 [[nodiscard]]
const QString& getPin()
const;
149 void setPin(
const QString& pPin);
151 [[nodiscard]] PacePasswordId getEstablishPaceChannelType()
const;
152 void setEstablishPaceChannelType(PacePasswordId pType);
154 virtual void resetPacePasswords();
156 [[nodiscard]] EstablishPaceChannelOutput* getPaceOutputData()
const;
157 void setPaceOutputData(
const EstablishPaceChannelOutput& pPaceOutputData);
160 [[nodiscard]] CardReturnCode getLastPaceResult()
const;
161 void setLastPaceResult(CardReturnCode pLastPaceResult);
162 void resetLastPaceResult();
164 void rememberReader();
165 [[nodiscard]]
bool remembersReader()
const;
166 [[nodiscard]]
bool isExpectedReader()
const;
167 [[nodiscard]]
const ReaderInfo& getExpectedReader()
const;
169 [[nodiscard]]
int getExpectedRetryCounter()
const;
170 void setExpectedRetryCounter(
int pExpectedRetryCounter);
172 [[nodiscard]]
const GlobalStatus& getStatus()
const;
173 void setStatus(
const GlobalStatus& pResult);
175 [[nodiscard]] std::optional<FailureCode> getFailureCode()
const;
176 void setFailureCode(
const FailureCode& pFailure);
178 [[nodiscard]]
const ECardApiResult& getStartPaosResult()
const;
179 void setStartPaosResult(
const ECardApiResult& pStartPaosResult);
181 [[nodiscard]]
bool isWorkflowFinished()
const;
182 void setWorkflowFinished(
bool pWorkflowFinished);
184 [[nodiscard]]
bool isWorkflowCancelled()
const;
185 [[nodiscard]]
bool isWorkflowCancelledInState()
const;
186 void setWorkflowCancelledInState();
188 [[nodiscard]]
virtual bool isCanAllowedMode()
const;
190 [[nodiscard]]
bool hasNextWorkflowPending()
const;
191 void setNextWorkflowPending(
bool pNextWorkflowPending);
193 [[nodiscard]]
bool currentReaderHasEidCardButInsufficientApduLength()
const;
194 void setCurrentReaderHasEidCardButInsufficientApduLength(
bool pState);
196 [[nodiscard]]
bool skipStartScan()
const;
197 void setSkipStartScan(
bool pState);
199 [[nodiscard]]
int getProgressValue()
const
201 return mProgressValue;
205 [[nodiscard]]
const QString& getProgressMessage()
const
207 return mProgressMessage;
211 void setProgress(
int pValue,
const QString& pMessage);
213 [[nodiscard]]
bool showRemoveCardFeedback()
const
215 return mShowRemoveCardFeedback;
219 void setRemoveCardFeedback(
bool pEnabled);
221 [[nodiscard]]
virtual QVector<AcceptedEidType> getAcceptedEidTypes()
const = 0;
223 bool isPhysicalCardRequired()
const;
225 [[nodiscard]]
bool interruptRequested()
const;
226 void setInterruptRequested(
bool pInterruptRequested);
#define defineEnumType(enumName,...)
Definition EnumHelper.h:98
Implementation of GeneralAuthenticate response APDUs.
Definition CommandApdu.h:16
PERSONALIZATION
Definition MsgTypes.h:33
AUTH
Definition MsgTypes.h:32