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;
71 void onWorkflowCancelled();
74 void fireStateApprovedChanged(
bool pApproved);
75 void fireStateChanged(
const QString& pNewState);
76 void fireReaderPlugInTypesChanged();
77 void fireReaderInfoChanged();
78 void fireReaderNameChanged();
79 void fireCardConnectionChanged();
80 void fireIsSmartCardAllowedChanged();
81 void fireCanChanged();
82 void firePinChanged();
83 void firePukChanged();
84 void firePaceResultUpdated();
85 void fireResultChanged();
86 void fireCanAllowedModeChanged();
87 void firePasswordTypeChanged();
88 void fireProgressChanged();
89 void fireRemoveCardFeedbackChanged();
91 void fireCancelWorkflow();
93 void fireNextWorkflowPending();
96 explicit WorkflowContext(
const Action mAction);
97 ~WorkflowContext()
override;
99 [[nodiscard]] Action getAction()
const
105 [[nodiscard]]
bool wasClaimed()
const;
106 void claim(
const QObject* pClaimant);
108 [[nodiscard]]
bool isErrorReportedToUser()
const;
109 void setErrorReportedToUser(
bool pErrorReportedToUser =
true);
111 [[nodiscard]]
bool isPaceResultReportedToUser()
const;
112 void setPaceResultReportedToUser(
bool pReported =
true);
114 void setStateApproved(
bool pApproved =
true);
115 [[nodiscard]]
bool isStateApproved()
const;
117 void killWorkflow(GlobalStatus::Code pCode = GlobalStatus::Code::Workflow_Cancellation_By_User);
118 [[nodiscard]]
bool isWorkflowKilled()
const;
120 [[nodiscard]]
const QString& getCurrentState()
const;
121 void setCurrentState(
const QString& pNewState);
123 [[nodiscard]]
bool isSmartCardUsed()
const;
125 [[nodiscard]]
const QVector<ReaderManagerPlugInType>& getReaderPlugInTypes()
const;
126 void setReaderPlugInTypes(
const QVector<ReaderManagerPlugInType>& pReaderPlugInTypes);
128 [[nodiscard]]
const QString& getReaderName()
const;
129 void setReaderName(
const QString& pReaderName);
131 [[nodiscard]]
const QSharedPointer<CardConnection>& getCardConnection()
const;
132 void setCardConnection(
const QSharedPointer<CardConnection>& pCardConnection);
133 void resetCardConnection();
135 [[nodiscard]]
bool isNpaRepositioningRequired()
const;
136 void setNpaPositionVerified();
137 void handleWrongNpaPosition();
139 [[nodiscard]]
virtual bool isRequestTransportPin()
const;
141 [[nodiscard]]
const QString& getPuk()
const;
142 void setPuk(
const QString& pPuk);
144 [[nodiscard]]
const QString& getCan()
const;
145 void setCan(
const QString& pCan);
147 [[nodiscard]]
const QString& getPin()
const;
148 void setPin(
const QString& pPin);
150 [[nodiscard]] PacePasswordId getEstablishPaceChannelType()
const;
151 void setEstablishPaceChannelType(PacePasswordId pType);
153 virtual void resetPacePasswords();
155 [[nodiscard]] EstablishPaceChannelOutput* getPaceOutputData()
const;
156 void setPaceOutputData(
const EstablishPaceChannelOutput& pPaceOutputData);
159 [[nodiscard]] CardReturnCode getLastPaceResult()
const;
160 void setLastPaceResult(CardReturnCode pLastPaceResult);
161 void resetLastPaceResult();
163 void rememberReader();
164 [[nodiscard]]
bool remembersReader()
const;
165 [[nodiscard]]
bool isExpectedReader()
const;
166 [[nodiscard]]
const ReaderInfo& getExpectedReader()
const;
168 [[nodiscard]]
int getExpectedRetryCounter()
const;
169 void setExpectedRetryCounter(
int pExpectedRetryCounter);
171 [[nodiscard]]
const GlobalStatus& getStatus()
const;
172 void setStatus(
const GlobalStatus& pResult);
174 [[nodiscard]] std::optional<FailureCode> getFailureCode()
const;
175 void setFailureCode(
const FailureCode& pFailure);
177 [[nodiscard]]
const ECardApiResult& getStartPaosResult()
const;
178 void setStartPaosResult(
const ECardApiResult& pStartPaosResult);
180 [[nodiscard]]
bool isWorkflowFinished()
const;
181 void setWorkflowFinished(
bool pWorkflowFinished);
183 [[nodiscard]]
bool isWorkflowCancelled()
const;
184 [[nodiscard]]
bool isWorkflowCancelledInState()
const;
185 void setWorkflowCancelledInState();
187 [[nodiscard]]
virtual bool isCanAllowedMode()
const;
189 [[nodiscard]]
bool hasNextWorkflowPending()
const;
190 void setNextWorkflowPending(
bool pNextWorkflowPending);
192 [[nodiscard]]
bool currentReaderHasEidCardButInsufficientApduLength()
const;
193 void setCurrentReaderHasEidCardButInsufficientApduLength(
bool pState);
195 [[nodiscard]]
bool skipStartScan()
const;
196 void setSkipStartScan(
bool pState);
198 [[nodiscard]]
int getProgressValue()
const
200 return mProgressValue;
204 [[nodiscard]]
const QString& getProgressMessage()
const
206 return mProgressMessage;
210 void setProgress(
int pValue,
const QString& pMessage);
212 [[nodiscard]]
bool showRemoveCardFeedback()
const
214 return mShowRemoveCardFeedback;
218 void setRemoveCardFeedback(
bool pEnabled);
220 [[nodiscard]]
virtual QVector<AcceptedEidType> getAcceptedEidTypes()
const = 0;
222 bool isPhysicalCardRequired()
const;
#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