AusweisApp2
MessageDispatcher.h
gehe zur Dokumentation dieser Datei
1 
7 #pragma once
8 
9 #include "context/AuthContext.h"
11 #include "messages/MsgContext.h"
12 #include "messages/MsgHandler.h"
13 
14 #include <QJsonDocument>
15 #include <QString>
16 
17 #include <functional>
18 #include <initializer_list>
19 
20 class test_Message;
21 
22 namespace governikus
23 {
24 
26 {
27  private:
28  friend class ::test_Message;
29 
30  MsgDispatcherContext mContext;
31 
32  MsgHandler createForStateChange(MsgType pStateType);
33  MsgHandler createForCommand(const QJsonObject& pObj);
34 
35  MsgHandler cancel();
36  MsgHandler accept();
37  MsgHandler interrupt();
38  MsgHandler handleCurrentState(MsgCmdType pCmdType, std::initializer_list<MsgType> pMsgType, const std::function<MsgHandler()>& pFunc) const;
39  MsgHandler handleInternalOnly(MsgCmdType pCmdType, const std::function<MsgHandler()>& pFunc) const;
40 
41  public:
42  class Msg final
43  {
44  friend class MessageDispatcher;
45  const MsgType mType;
46  const QByteArray mData;
47 
48  Msg(const MsgHandler& pHandler);
49 
50  public:
51  operator QByteArray() const;
52  operator MsgType() const;
53  };
54 
56 
57  QByteArray init(const QSharedPointer<WorkflowContext>& pWorkflowContext);
58  QByteArray finish();
59  void reset();
60  Msg processCommand(const QByteArray& pMsg);
61  QByteArray processStateChange(const QString& pState);
62 
63  [[nodiscard]] QByteArray createMsgReader(const ReaderInfo& pInfo) const;
64 };
65 
66 char* toString(const MessageDispatcher::Msg& pMsg);
67 
68 } // namespace governikus
MsgHandlerCertificate.h
AuthContext.h
ReaderManager.h
MsgHandlerEnterPin.h
MsgHandlerAuth.h
governikus::MsgHandlerEnterNewPin
Definition: MsgHandlerEnterNewPin.h:17
governikus::ENTER_NEW_PIN
ENTER_NEW_PIN
Definition: MsgTypes.h:31
governikus::ACCESS_RIGHTS
ACCESS_RIGHTS
Definition: MsgTypes.h:28
governikus::toString
char * toString(const MessageDispatcher::Msg &pMsg)
MsgHandlerEnterCan.h
MsgContext.h
governikus::AuthContext
Definition: AuthContext.h:49
governikus::MsgHandlerCertificate
Definition: MsgHandlerCertificate.h:17
governikus::MsgHandler::getStateMsgType
static MsgType getStateMsgType(const QString &pState, PacePasswordId pPasswordId)
Definition: MsgHandler.cpp:21
governikus::MessageDispatcher::processCommand
Msg processCommand(const QByteArray &pMsg)
Definition: MessageDispatcher.cpp:162
governikus::MsgHandlerChangePin
Definition: MsgHandlerChangePin.h:18
governikus::ReaderInfo
Definition: ReaderInfo.h:17
governikus::MsgDispatcherContext::clear
void clear()
Definition: MsgContext.cpp:63
governikus::MsgHandlerInternalError
Definition: MsgHandlerInternalError.h:16
MsgHandlerInvalid.h
governikus::ChangePinContext
Definition: ChangePinContext.h:16
governikus::MessageDispatcher::finish
QByteArray finish()
Definition: MessageDispatcher.cpp:94
VolatileSettings.h
governikus::MsgHandlerBadState
Definition: MsgHandlerBadState.h:16
WorkflowContext.h
governikus::MsgHandlerEnterCan
Definition: MsgHandlerEnterCan.h:17
MsgHandlerInsertCard.h
governikus::MsgContext::getContext
QSharedPointer< const T > getContext() const
Definition: MsgContext.h:35
governikus::MsgHandlerLog
Definition: MsgHandlerLog.h:16
governikus::MsgHandlerReaderList
Definition: MsgHandlerReaderList.h:16
governikus::MessageDispatcher
Definition: MessageDispatcher.h:26
MsgHandlerInfo.h
ChangePinContext.h
governikus::MsgContext::isActiveWorkflow
bool isActiveWorkflow() const
Definition: MsgContext.cpp:22
governikus::MessageDispatcher::reset
void reset()
Definition: MessageDispatcher.cpp:80
MsgHandlerApiLevel.h
governikus::MsgContext::getLastStateMsg
MsgType getLastStateMsg() const
Definition: MsgContext.cpp:40
MsgHandlerReader.h
governikus
Implementation of ActivationContext for Intent based activation on Android systems.
Definition: ActivationContext.h:15
governikus::MsgHandler::getOutput
QByteArray getOutput() const
Definition: MsgHandler.cpp:93
HANDLE_INTERNAL_ONLY
#define HANDLE_INTERNAL_ONLY(msgHandler)
Definition: MessageDispatcher.cpp:38
governikus::Enum::fromString
static EnumTypeT fromString(const char *const pValue, EnumTypeT pDefault)
Definition: EnumHelper.h:145
MsgHandlerReaderList.h
governikus::MsgDispatcherContext::addStateMsg
void addStateMsg(MsgType pMsgType)
Definition: MsgContext.cpp:57
MessageDispatcher.h
governikus::MsgHandlerAuth
Definition: MsgHandlerAuth.h:18
MsgHandlerChangePin.h
HANDLE_CURRENT_STATE
#define HANDLE_CURRENT_STATE(msgType, msgHandler)
Definition: MessageDispatcher.cpp:37
MsgHandlerLog.h
governikus::ENTER_PIN
ENTER_PIN
Definition: MsgTypes.h:30
MsgHandlerUnknownCommand.h
governikus::INSERT_CARD
INSERT_CARD
Definition: MsgTypes.h:29
MsgHandlerBadState.h
governikus::MsgHandlerInvalid
Definition: MsgHandlerInvalid.h:18
governikus::ENTER_CAN
ENTER_CAN
Definition: MsgTypes.h:32
MsgHandlerInternalError.h
MsgHandlerEnterPuk.h
governikus::MsgHandlerReader
Definition: MsgHandlerReader.h:17
governikus::MsgDispatcherContext::setWorkflowContext
void setWorkflowContext(const QSharedPointer< WorkflowContext > &pContext)
Definition: MsgContext.cpp:51
governikus::MsgHandler::Void
static const MsgHandler Void
Definition: MsgHandler.h:39
governikus::MsgHandler
Definition: MsgHandler.h:17
governikus::MsgDispatcherContext
Definition: MsgContext.h:66
MsgHandlerEnterNewPin.h
governikus::MessageDispatcher::processStateChange
QByteArray processStateChange(const QString &pState)
Definition: MessageDispatcher.cpp:113
governikus::MsgHandlerAccessRights
Definition: MsgHandlerAccessRights.h:20
governikus::MessageDispatcher::Msg
Definition: MessageDispatcher.h:43
governikus::MessageDispatcher::init
QByteArray init(const QSharedPointer< WorkflowContext > &pWorkflowContext)
Definition: MessageDispatcher.cpp:60
governikus::MessageDispatcher::MessageDispatcher
MessageDispatcher()
Definition: MessageDispatcher.cpp:54
governikus::getType
QByteArray getType() const
MsgHandlerAccessRights.h
governikus::MsgHandlerUnknownCommand
Definition: MsgHandlerUnknownCommand.h:16
MsgHandler.h
governikus::MsgHandlerApiLevel
Definition: MsgHandlerApiLevel.h:17
governikus::MessageDispatcher::createMsgReader
QByteArray createMsgReader(const ReaderInfo &pInfo) const
Definition: MessageDispatcher.cpp:88
governikus::MsgHandlerInsertCard
Definition: MsgHandlerInsertCard.h:17
governikus::MsgHandlerInfo
Definition: MsgHandlerInfo.h:16
governikus::MsgHandlerEnterPin
Definition: MsgHandlerEnterPin.h:17
governikus::MsgHandlerEnterPuk
Definition: MsgHandlerEnterPuk.h:17